我正在开发一款支持iPhone和iPad的应用程序。 对于iPad,我们支持纵向和横向(iOS 9.0)。但出于某种原因,为了满足要求,我们必须为横向UI维护单独的故事板。这是否由Apple加入。
想要确保这符合APPLE指南。
答案 0 :(得分:1)
如果您想要不同的故事板,可以在主视图控制器中尝试以下代码:
- (void) viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator {
NSString* storyboard = (size.width > size.height ) ? @"lanscape" : @"portrait";
UIStoryboard* mainView = [UIStoryboard storyboardWithName:storyboard bundle:nil];
UIViewController* viewcontroller = [mainView instantiateInitialViewController]
// remove privious view controller
// add newViewcontroller
}
override func viewWillTransitionToSize(size: CGSize, withTransitionCoordinator coordinator: UIViewControllerTransitionCoordinator) {
let storyboardName = (size.width > size.height ) ? "lanscape" : "portrait"
var mainView: UIStoryboard!
mainView = UIStoryboard(name: storyboardName, bundle: nil)
if let newViewcontroller : UIViewController = mainView.instantiateInitialViewController() {
// remove privious view controller
// add newViewcontroller
}
}
我希望它可以帮到你。
答案 1 :(得分:0)
仅当iPad需要两个方向(横向和纵向)并且每个方向的UI发生巨大变化时,才可以为iPhone和iPad使用两个单独的故事板。由于iPad的大小类别在两个方向上都是常规的,因此您仍然可以继续在一个故事板上构建UI。
在某些情况下,您无法在相同尺寸级别下继续操纵不同方向的约束或视图。这样会变得很麻烦,而且太复杂了。
因此,始终将两个故事板(对于iPad的另一个方向为1个)分开是一个更好的主意,如果两个iPad的UI都不同。
但是对于iPhone和iPad之一,您仍然可以继续使用1个故事板,因为它们继承了不同的大小类。