UIButton的状态变化,有可能出乎你的意料,这里就来说说变化中间的highlighted状态:
从normal --> highlighted --> selected
,这个变化过程大家都知道,
然而从selected --> normal
并不是这样,中间的状态是.normal | . highlighted
。
如果你的按钮时selected状态,点击高亮状态,展示的并不是你需要的图片,此时就需要设置.normal | . highlighted
这种状态的图片了。
// OC
[button setImage:[UIImage imageNamed:@"imageName"] forState:UIControlStateSelected | UIControlStateHighlighted];
// Swift
button.setImage(UIImage(named: "imageName"), for: [.selected, .highlighted])
不需要高亮状态的需求:
如果不需要高亮状态,可以自定义UIButton,重写setHighlighted方法,如下:
// OC
- (void)setHighlighted:(BOOL)highlighted {
}
// Swift
class CustomBtn: UIButton {
override var isHighlighted: Bool {
set {
}
get {
return false
}
}
}
然后就不需要设置高亮状态的代码了,按钮点击也无高亮状态的变化。
网友评论