我有以下代码:
public override void TraitCollectionDidChange(previousTraitCollection: UITraitCollection)
{
base.TraitCollectionDidChange(previousTraitCollection)
...
}
base.TraitCollectionDidChange()
做什么?
当您的大小类更改时,将调用此方法。因此,您可以调整布局:)
你听说过尺寸等级吗?
大小类是用于定义大小设备的苹果抽象。
例如,对于 iPhone X 具有,该值:
纵向 :- 紧凑的宽度,规则的高度
对于景观 :- 紧凑的宽度,紧凑的高度
使用TraitCollection,您可以确定此类何时更改,例如从纵向更改为横向,使用此信息可以更新布局。
这里有一个教程:https://www.hackingwithswift.com/example-code/uikit/how-to-detect-when-your-size-class-changes
这里有一个关于尺寸类的教程:https://developer.apple.com/design/human-interface-guidelines/ios/visual-design/adaptivity-and-layout/