Я работаю над универсальным приложением для устройств iPad и iPhone, которое поддерживает как альбомный, так и портретный режимы. В ландшафтном режиме у него больше кнопок, чем в портретном режиме.
Для iPhone я смог разработать различные макеты с помощью раскадровки, и это работает, как и ожидалось, для wC|hC , wC|hR, wR|hC.
Но в случае iPad я не мог создавать разные макеты, так как классы размеров одинаковы wR | hR как для альбомной, так и для портретной ориентации.
Я упомянул решения, обсуждаемые @Класс определения размеров для портретной и альбомной ориентации iPad Режимы , iPad Landscape и Portrait разные макеты с размером Класс и пытался использовать код ниже:
override func overrideTraitCollectionForChildViewController(childViewController: UIViewController) -> UITraitCollection? {
if UIDevice.currentDevice().userInterfaceIdiom == UIUserInterfaceIdiom.Pad &&
view.bounds.width > view.bounds.height {
let collections = [UITraitCollection(horizontalSizeClass: .Regular),
UITraitCollection(verticalSizeClass: .Compact)]
return UITraitCollection(traitsFromCollections: collections)
}
return super.overrideTraitCollectionForChildViewController(childViewController)
}
Но этот код так и не был вызван. Каким должен быть лучший способ добиться этого?
Повлияет ли программное изменение характеристик для iPad на процесс утверждения приложения, поскольку сама Apple предоставляет тот же размерный класс для iPad в альбомной и портретной ориентации.