Search
Write a publication
Pull to refresh
6
0
Send message
Именно с помощью UITraitCollection различить не получится, так как при его использовании HorizontalSizeClass и VerticalSizeClass будет == regular. В итоге, в какой ориентации б iPad не был, SizeClasses всегда будут regular. Более того при подключении протокола UITraitEnvironment и запуске приложения на iPad, метод:
 - (void) traitCollectionDidChange:(UITraitCollection *)previousTraitCollection

при смене ориентации вызываться НЕ будет.
Спасибо! Исправил. Статью писал в конце рабочего дня, еще и в пятницу, по этому ошибки не исключены :)
Для меня пока obj-c более родной, да и swift не очень нравится. Хотя от него уже не уйдешь :)
Честно, пытаюсь не создавать программно constraits, только в крайнем случае. Все таки через storyboards визуально удобней :)
Согласе, Preview очень полезная штука, тем более в Xcode 6 можно просматривать результат одновременно на всех семействах устройств, при чем с их же портретными ориентациями, что очень удобно!
Можно и в коде.
1. Есть протокол UITraitEnvironment и метод:
 traitCollectionDidChange:(UITraitCollection *)previousTraitCollection 

который следит за изменениями текущего trait collection.

2. А для изменения UITraitCollection вручную можно проделать следующее:


    UITraitCollection *horizontalSizeClass = [UITraitCollection traitCollectionWithHorizontalSizeClass:UIUserInterfaceSizeClassCompact];
    [self setOverrideTraitCollection:horizontalSizeClass forChildViewController:self.viewController];


либо так:


    UITraitCollection *verticalSizeClass = [UITraitCollection traitCollectionWithVerticalSizeClass:UIUserInterfaceSizeClassCompact];
    UITraitCollection *horizontalSizeClass = [UITraitCollection traitCollectionWithHorizontalSizeClass:UIUserInterfaceSizeClassCompact];
    NSArray *traitCollectionArray = [NSArray arrayWithObjects:verticalSizeClass, horizontalSizeClass, nil];
    UITraitCollection *combinedTraits = [UITraitCollection traitCollectionWithTraitsFromCollections:traitCollectionArray];
    [self setOverrideTraitCollection:combinedTraits forChildViewController:self.viewController];

Information

Rating
Does not participate
Registered
Activity