我有以下代码:
public override void TraitCollectionDidChange(previousTraitCollection: UITraitCollection)
{
base.TraitCollectionDidChange(previousTraitCollection)
...
}
base.TraitCollectionDidChange()
做什么?
当您的尺寸类别更改时,将调用此方法。因此,您可以调整您的布局:)
您听说过尺码等级吗?
Size类是定义大小设备的苹果抽象方法。
例如,对于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/