UIButton根據(jù)不同的狀態(tài)設(shè)置layer 這需要用到KVO纵苛,監(jiān)聽(tīng)button的highlighted屬性的變化劳坑,在監(jiān)聽(tīng)回調(diào)里根據(jù)監(jiān)聽(tīng)到的屬性值設(shè)置layer
設(shè)置監(jiān)聽(tīng)如下
[button addObserver:self forKeyPath:@"highlighted" options:NSKeyValueObservingOptionNew|NSKeyValueObservingOptionOld context:NULL];
監(jiān)聽(tīng)回調(diào)如下
-(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;
}
}