【发布时间】:2016-11-27 04:46:09
【问题描述】:
我创建了一个UIView 子类并在其中添加了一些图像视图和标签。我使用视觉格式创建constraints。并且视图布局对于不同的大小类是不同的。我使用下面的代码来识别尺寸等级。
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?
标签: ios swift uiview autolayout