首页 > 解决方案 > Explain what TraitCollectionDidChange/UITraitCollection is in simple terms?

问题描述

I have the following code:

public override void TraitCollectionDidChange(previousTraitCollection: UITraitCollection)
{
    base.TraitCollectionDidChange(previousTraitCollection)
    ...
}

What does base.TraitCollectionDidChange() do?

标签: iosswiftxcodexamarinxamarin.ios

解决方案


当您的尺寸类更改时,将调用此方法。所以你可以调整你的布局:)

你听说过size class吗?

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/


推荐阅读