之前筆者通過Swift自定義button:http://www.reibang.com/p/e679a0710e29; 但是這個方法在某些情況下有些bug,比如點擊的時候,如果設置了動畫(button有縮放效果),
如果layoutSubviews被多次調用,由于縮放效果,button位置會發(fā)生偏移
1. 解決辦法:干掉按鈕高亮效果
override var highlighted: Bool{
get{
return false
}
set{}
}
2. 筆者網(wǎng)上搜索了一下layoutSubviews調用情況
1、init初始化不會觸發(fā)layoutSubviews
2、addSubview會觸發(fā)layoutSubviews
3、設置view的Frame會觸發(fā)layoutSubviews,當然前提是frame的值設置前后發(fā)生了變化
4孵滞、滾動一個UIScrollView會觸發(fā)layoutSubviews
5、旋轉Screen會觸發(fā)父UIView上的layoutSubviews事件
6、改變一個UIView大小的時候也會觸發(fā)父UIView上的layoutSubviews事件
ps:layoutSubviews總結---不要直接調用方法layoutSubviews(可重寫),如果想要刷新,
可以調用setNeedsLayout或者layoutIfNeeded,相當于刷新布局