我有一个带有公共detailView(右侧)的UISplitViewController。
我向横向添加了一个按钮,当单击按钮时, masterView(左侧)将隐藏, detailView将变为全屏。就像 Dropbox app for iPad
的行为一样现在,我可以隐藏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)更改框架而不是原始宽度,框架的位置就不会改变。
如何使细节视图在横向方向上成为整个屏幕宽度? 任何建议都将非常感激。
答案 0 :(得分:0)
我看到另一种可能使用+ transitionFromView:toView:duration:options:completion:UIView的方法,用于在UIWindow视图中交换其他全屏UIView实例的UISplitViewCintroller视图
答案 1 :(得分:0)
我在下面的链接中找到了一个解决方案来创建自定义splitview控制器,你可以通过调整它来获得所需的效果。我不认为可以改变普通UISplitViewController的主视图和细节视图的帧大小(我在iOS5中试过,它没有用)。
-anoop
答案 2 :(得分:0)
这可以使用viewWillTransitionToSize
方法完成,只要我们的设备方向发生变化,就会调用此方法,以下内容将帮助您实现所需目标。
-(void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator{
self.splitViewController.preferredDisplayMode = UISplitViewControllerDisplayModePrimaryHidden;
}
preferredDisplayMode
可用于使主视图隐藏或显示或覆盖详细视图控制器。