UIButton根据不同的状态设置layer
这需要用到KVO,监听button的highlighted属性的变化,在监听回调里根据监听到得属性值设置layer
设置监听如下
- [button addObserver:self forKeyPath:@"highlighted" options:NSKeyValueObservingOptionNew|NSKeyValueObservingOptionOld context:NULL];
- 监听回调如下
- -(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context { UIButton * bt = (UIButton* )object;
- if([keyPath isEqualToString:@"highlighted"])
- {
- if(bt.state == UIControlStateNormal) {
- bt.layer.bordColor = [UIColor redColor].CGColor;
- } else{
- bt.layer.bordColor = [UIColor black].CGColor;
- }
- }