这需要用到KVO,监听button的highlighted属性的变化,在监听回调里根据监听到得属性值设置layer

设置监听如下

  1. [button  addObserver:self forKeyPath:@"highlighted" options:NSKeyValueObservingOptionNew|NSKeyValueObservingOptionOld context:NULL];
  2. 监听回调如下
  3. -(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {    UIButton * bt = (UIButton* )object;
  4. if([keyPath isEqualToString:@"highlighted"])
  5. {
  6. if(bt.state == UIControlStateNormal) {
  7. bt.layer.bordColor  = [UIColor redColor].CGColor;
  8. } else{
  9. bt.layer.bordColor  = [UIColor black].CGColor;
  10. }
  11. }          

UIButton根据不同的状态设置layer的更多相关文章

  1. 因为相同类型的其他实体已具有相同的主键值。在使用 "Attach" 方法或者将实体的状态设置为 "Unchanged" 或 "Modified" 。。。

    因为相同类型的其他实体已具有相同的主键值.在使用 "Attach" 方法或者将实体的状态设置为 "Unchanged" 或 "Modified&quo ...

  2. tableview 编辑状态设置

    #pragma mark - tableview 编辑状态设置 -(BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSI ...

  3. ContextMune上下文菜单中,二级菜单获取及状态设置

    ContextMune上下文菜单中,二级菜单获取及状态设置 在使用ContextMune上下文菜单中,能够通过二级菜单来获取及状态设置 //二级菜单获取和状态设置((ToolStripDropDown ...

  4. 关于Entity Framework更新的几种方式以及可能遇到的问题(附加类型“Model”的实体失败,因为相同类型的其他实体已具有相同的主键值)在使用 "Attach" 方法或者将实体的状态设置为 "Unchanged" 或 "Modified" 时如果图形中的任何实体具有冲突键值,则可能会发生上述行为

    在日常使用Entity Framework中,数据更新通常会用到.下面就简单封装了一个DBContext类 public partial class EFContext<T> : DbCo ...

  5. Linux ipv6 无状态 设置为 eui64

    Linux ipv6 无状态 设置为 eui64 转载注明来源: 本文链接 来自osnosn的博客,写于 2019-08-22. 无状态的ipv6有eui64和stable-privacy模式, 在家 ...

  6. discuz回贴通知插件实现-用户状态设置

    1.获取用户提交数据 discuz通过$_GET来获取全部数据,包括($_GET,$_POST). else if($_GET['pluginop'] == 'set') { //获取用户提交数据 $ ...

  7. discuz回贴通知插件实现-显示用户状态设置

    一.完善用户是否开启回贴通知 回贴通知插件建立模块时,指定了核心文件post_set.inc.php   1.创立好数据库 建立独立数据表(不建议直接修改原有的discuz数据库,防止discuz升级 ...

  8. Android虚拟机电池状态设置

    问题描述: 安装SDK后使用AVD配合APPIUM进行测试,此时虚拟机的电池状态为0%充电中:部分APP会对手机电池状态有要求,不符合要求时,无法安装或打开. 解决思路: 1.Android系统设置( ...

  9. [iOS]UIButton内、外边距设置

    - (void)viewDidLoad {        [super viewDidLoad];        /*         UIButton设置对应的边距image跟title的边距属性  ...

随机推荐

  1. linux软连接和硬链接

    1.软连接(符号连接)创建方法(相当于windows的快捷方式) # ln -s 原文件 连接文件(最好使用绝对路径) 特点: 1.软连接文件是777的权限,而且很小很小: 2.可以跨分区(文件系统) ...

  2. VS下的解决方案目录结构设置和管理

    转载:http://blog.csdn.net/pl20140910/article/details/52074165 为了方便管理自己写的代码,也为了日后工作能方便的查找之前做过相同的代码,仿照某源 ...

  3. Bootstrap结合BootstrapTable的使用,分为两种模试显示列表。 自适应表格

    引用的css: <link href="@Url.Content("~/Css/bootstrap.min.css")" rel="styles ...

  4. sqoop的export的说明

    1.通用参数说明

  5. jq 选项卡

    <!doctype html> <html> <head> <meta charset="utf-8"> <style> ...

  6. php更新修改excel中的内容例子

    代码如下 复制代码 //模板存放目录$dir = $DOCUMENT_ROOT.'/backoffice/admin/oemcheck/';  $templateName = '1.xlsx';$ou ...

  7. MJExtension

    MJExtension 长话短说下面我们通过一个列子来看下怎么使用 1. 先把框架拉进去你的项目 2. 首先我这次用到的json最外层是一个字典,根据数据的模型我们可以把这个归类为字典中有数组,数组中 ...

  8. Vim-latex 插件 的安装

    ref:https://www.jianshu.com/p/ddd825064062 Vim-latex 插件 1. 安装 Vim-latex 插件是一个强大的Latex插件, 它的安装方法是: 将下 ...

  9. Java类是如何默认继承Object的

    前言 学过Java的人都知道,Object是所有类的父类.但是你有没有这样的疑问,我并没有写extends Object,它是怎么默认继承Object的呢? 那么今天我们就来看看像Java这种依赖于虚 ...

  10. navicat新建用户,并赋予权限

    一.新建用户 二.设置主机和密码 主机%的意思是允许用户本地登入和远程登入. 三.选择表或者视图 右键,选择设置权限 四. 选择添加权限. 五. 选择用户以及Select  和  Show View ...