我創建了UIView
子類,並在其中添加了一些imageViews和標籤。我用Visual Format創建了constraints
。視圖佈局對於不同大小的類別是不同的。我使用下面的代碼來確定尺寸等級。如何更新方向變化的UIView的子類中的自動佈局約束
let rule = UITraitCollection(horizontalSizeClass: .regular)
let isHorizontalRegular = self.traitCollection.containsTraits(in: rule)
if isHorizontalRegular {
// constraints for Horizontal Regular size class
} else {
// constraints for other size class
}
因爲我沒有得到在init
方法大小類的信息,所以我創造了所有的自動佈局constraints
在updateConstraints()
方法創建的。
基於這個實現我有一些問題。
- 它是正確的做法在重寫的方法
updateConstraints()
創建的所有constraint
? - 如果不是,這是根據尺寸等級創建自動佈局
constraints
的西方方式。 - 如何更新方向更改的自動佈局
constraints
(因爲我使用可視化格式創建自動佈局constraints
)?
我知道我可以使用UIViewController
生命週期方法解決我的問題。但我正在使用@IBDesignable
在故事板上呈現視圖。那麼是否有可能在UIView
子類中實現這些。
請幫我解決這些問題。
你看過或使用覆蓋'didLayoutSubviews'? – TheValyreanGroup