UITraitEnvironment
Наследование
Не применимый
Оператор импорта
Swift
import UIKit
Objective C
@import UIKit;
Доступность
Доступный в iOS 8.0 и позже.
iOS соединяет интерфейсом со средой, включающей такие черты как горизонтальный и вертикальный класс размера, масштаб дисплея и идиома пользовательского интерфейса, доступны приложениям через UITraitEnvironment протокол. Следующие интерфейсные классы принимают этот протокол: UIScreen, UIWindow, UIViewController, UIPresentationController, и UIView.
Для доступа к среде черты объекта, принимающего этот протокол используйте traitCollection свойство. Протокол также обеспечивает переопределяемый метод что системные вызовы когда интерфейсные изменения среды. Реализуйте этот метод как часть создания адаптивного приложения для iOS.
Для больше о наборах черты, посмотрите Ссылку класса UITraitCollection. Для представления 2014 года WWDC создания адаптивных интерфейсов в iOS см. Создающие Адаптивные Приложения с UIKit.
-
traitCollectionСвойствоНабор черты для контроллера представления (экземпляр
UIViewControllerкласс или один из его подклассов) или представление (экземплярUIViewкласс или один из его подклассов). (требуемый) (только для чтения)Объявление
Swift
var traitCollection: UITraitCollection { get }Objective C
@property(nonatomic, readonly) UITraitCollection *traitCollectionОператор импорта
Objective C
@import UIKit;Swift
import UIKitДоступность
Доступный в iOS 8.0 и позже.
-
Вызванный, когда iOS соединяет интерфейсом с изменениями среды. (требуемый)
Объявление
Swift
func traitCollectionDidChange(_previousTraitCollection: UITraitCollection?)Objective C
- (void)traitCollectionDidChange:(UITraitCollection *)previousTraitCollectionПараметры
previousTraitCollectionUITraitCollectionобъект перед интерфейсной средой изменился.Обсуждение
Системные вызовы этот метод, когда iOS соединяет интерфейсом с изменениями среды. Реализуйте этот метод в поле зрения контроллеры и представления, согласно потребностям Вашего приложения, для реакции на такие изменения. Например, когда iPhone повернут от портрета до альбомной ориентации, Вы могли бы скорректировать расположение подпредставлений контроллера представления. Реализация по умолчанию этого метода пуста.
В начале Вашей реализации вызвать
superгарантировать, чтобы интерфейсные элементы выше в иерархии представления имели возможность скорректировать их расположение сначала. Используйте код, подобный этому:- (void) traitCollectionDidChange: (UITraitCollection *) previousTraitCollection {[super traitCollectionDidChange: previousTraitCollection];if ((self.traitCollection.verticalSizeClass != previousTraitCollection.verticalSizeClass)|| self.traitCollection.horizontalSizeClass != previousTraitCollection.horizontalSizeClass)) {// your custom implementation here}}
Оператор импорта
Objective C
@import UIKit;Swift
import UIKitДоступность
Доступный в iOS 8.0 и позже.
