我有一個具有一定外觀的自定義UIView。我想要它,所以如果UIView的寬度由於代碼設置自動佈局寬度約束而發生變化,我想通過相應地改變外觀來對變化做出反應 - 其中一個例子是設置拐角半徑。如何對UIView上自動佈局約束引起的大小變化做出反應?
我的自定義UIView如何對由UIView上的自動佈局約束引起的大小更改做出反應?
我有一個具有一定外觀的自定義UIView。我想要它,所以如果UIView的寬度由於代碼設置自動佈局寬度約束而發生變化,我想通過相應地改變外觀來對變化做出反應 - 其中一個例子是設置拐角半徑。如何對UIView上自動佈局約束引起的大小變化做出反應?
我的自定義UIView如何對由UIView上的自動佈局約束引起的大小更改做出反應?
覆蓋layoutSubviews
:
- (void)layoutSubviews {
[super layoutSubviews];
[self updateCornerRadius];
}
那很簡單。這是UIView中唯一的方法,當佈局約束被應用到它時被觸發? – Boon
我相信自動佈局發送'setCenter:'和'setBounds:'到視圖來設置它的位置和大小,所以你可以重寫這些,但我建議只是重寫'layoutSubviews'。 –
好吧,還有['drawRect:'](https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIView_Class/#//apple_ref/occ/instm/UIView/drawRect :)它可能發送。但我也建議堅持layoutSubviews。 –
你能在[layoutSubviews]更新它們(https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIView_Class/#//apple_ref/occ/instm/UIView的/ layoutSubviews)? –