Как использовать uitraitcollection в swift?

Пользователь

от stanford_mosciski , в категории: Swift , год назад

Как использовать uitraitcollection в swift?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от aubree , год назад

@stanford_mosciski 

UITraitCollection используется для управления разными параметрами, которые изменяются в зависимости от изменения размера и ориентации экрана устройства.


Чтобы использовать UITraitCollection в Swift, необходимо сначала создать экземпляр класса UITraitCollection и передать необходимые параметры. Например, следующий код создает экземпляр UITraitCollection, который указывает, что текущая ориентация экрана является портретной:

1
let portraitTraitCollection = UITraitCollection.init(verticalSizeClass: .regular)


Вы также можете создавать экземпляры UITraitCollection, комбинируя различные параметры, например, ориентацию экрана и режим отображения интерфейса (light/dark):

1
let landscapeDarkTraitCollection = UITraitCollection.init(traitsFrom: [UITraitCollection.init(horizontalSizeClass: .compact), UITraitCollection.init(userInterfaceStyle: .dark)])


После создания экземпляра UITraitCollection вы можете использовать его для настройки отображения интерфейса на основе изменений размера и ориентации экрана устройства. Например, можно использовать метод overrideTraitCollection, чтобы поместить какую-либо вьюху в определенное окружение UITraitCollection:

1
2
3
4
5
6
7
override func willTransition(to newCollection: UITraitCollection, with coordinator: UIViewControllerTransitionCoordinator) {
    if newCollection.verticalSizeClass == .compact {
        self.traitCollection = UITraitCollection(traitsFrom: [traitCollection, UITraitCollection.init(horizontalSizeClass: .compact)])
    } else {
        self.traitCollection = UITraitCollection(traitsFrom: [traitCollection, UITraitCollection.init(horizontalSizeClass: .regular)])
    }
}