如何在Landscape中全屏显示UISplitViewController的DetailView
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Landscape中全屏显示UISplitViewController的DetailView相关的知识,希望对你有一定的参考价值。
我有一个带有共同detailView(右侧)的UISplitViewController。
我在横向方向上向detailView添加了一个按钮,当单击该按钮时,masterView(左侧)将隐藏,detailView将变为全屏。就像iPad的Dropbox应用程序的行为一样
现在,我可以隐藏masterView但不能通过设置detailviewController.view的框架将detailView更改为全屏。
splitview的左侧宽度= 321,并且detailviewController.view.frame在更改之前为{{321,0},{703,748}}。
如果我通过以下代码更改detailview.frame,则不会发生任何更改。
self.frame = CGRectMake(0, 0, 1024, 748);
如果我使用下面的代码,它将改变位置,但这不是全屏。
self.frame = CGRectMake(0, 0, 703, 748);
我发现如果我用比原始宽度更大的尺寸(例如704)更改框架,框架的位置将不会改变。
如何使detailview在横向方向上成为整个屏幕宽度?任何建议将非常感谢。
我看到另一种可能使用+ transitionFromView:toView:duration:options:completion:UIView的方法,用于在UIWindow视图中交换UISplitViewCintroller的其他全屏UIView实例的视图
我在下面的链接中找到了一个解决方案来创建一个自定义的splitview控制器,你可以通过调整它来获得所需的效果。我不认为有可能改变普通UISplitViewController的主视图和详细视图的帧大小(我在ios5中尝试过,它没有用)。
-Anup
这可以通过viewWillTransitionToSize
方法完成,只要我们的设备方向发生变化,就会调用此方法,以下内容将帮助您实现所需。
-(void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator{
self.splitViewController.preferredDisplayMode = UISplitViewControllerDisplayModePrimaryHidden;
}
preferredDisplayMode
可用于使主视图隐藏或显示或覆盖Detail View控制器。
以上是关于如何在Landscape中全屏显示UISplitViewController的DetailView的主要内容,如果未能解决你的问题,请参考以下文章
如何在带有新窗口和特定显示器的窗口中全屏启动 chrome 浏览器