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
Параметры
previousTraitCollection
UITraitCollection
объект перед интерфейсной средой изменился.Обсуждение
Системные вызовы этот метод, когда 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 и позже.