用简单的术语解释什么是TraitCollectionDidChange/UITraitCollection?



我有以下代码:

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/

最新更新