我只在iPad中使用拆分视图,iOS 8应用程序采用标准格式。 (当iPad为横向时,它会同时显示主视图和详细视图;当纵向显示全屏细节视图时,主视图从左侧滑入。)主视图和详细视图都是导航视图控制器,其中包含主视图表视图控制器。主视图表中的选择会更改详细视图。这一切都已设置并正常工作。
然而,我想做的是,在纵向方向上,在主视图表中进行选择时,主视图应该在屏幕上显示动画。其次,如果在纵向模式下启动时在主视图表中没有进行选择,我想将主视图设置为视图。
感谢任何指导。
答案 0 :(得分:19)
答案是为preferredDisplayMode属性设置动画。要显示代码是:
if (UIInterfaceOrientationIsPortrait([UIDevice currentDevice].orientation)) {
[UIView animateWithDuration:ANIMATION_LENGTH animations:^{
self.splitViewController.preferredDisplayMode = UISplitViewControllerDisplayModePrimaryOverlay;
} completion:^(BOOL finished) {
self.splitViewController.preferredDisplayMode = UISplitViewControllerDisplayModeAutomatic;
}];
}
隐藏代码是:
if (UIInterfaceOrientationIsPortrait([UIDevice currentDevice].orientation)) {
[UIView animateWithDuration:ANIMATION_LENGTH animations:^{
self.splitViewController.preferredDisplayMode = UISplitViewControllerDisplayModePrimaryHidden;
} completion:^(BOOL finished) {
self.splitViewController.preferredDisplayMode = UISplitViewControllerDisplayModeAutomatic;
}];
}
我在完成时将其设置回自动,因此分割视图控制器可以在动画完成后正常运行。我还在节目中添加了另一个布尔值,所以我只显示我的细节项目尚未设置但我从上面的代码中删除它,因为这是特定于您自己的代码。