Swift中,遇到需要重写父类的set方法时。

例如,继承了UIButton以后,需要重写setHightlighted方法,在OC中应该是:
-(void)setHighlighted:(BOOL)highlighted {
[super setHighlighted:highlighted]
#your code here#
}
然而在Swift中 直接override func setHighlighted(){}就不行了
正确的方法是重写父类的属性,如果父类的getter改名了,那就用getter的名字重写。
如下:
override var isHighlighted:Bool {
willSet {
#your code here#
}
}
当然,在didSet中写也可以,按需求来做就可以。注意使用newValue

评论

此博客中的热门博文

使__attribute__((annotate("xxx")))能作用于OC函数

viewWillAppear不执行的解决办法

iOS中使用xpc/xpc.h