2011-08-27 80 views
2

我有一个UISplitViewController与公共detailView(右侧)。如何全屏UISplitViewController在景观DetailView

我加入一个按钮的DetailView在横向,单击该按钮时,该马西德威(左侧)将隐藏的DetailView将成为全屏。就像Dropbox的应用程序为iPad

行为现在,我可以隐藏马西德威但不能改变的DetailView通过只设置detailviewController.view的帧切换到全屏模式。

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在横向方向变为整个屏幕宽度? 任何建议将不胜感激。

回答

0

我看到另一个可能使用+ transitionFromView:toView:持续时间:选择:完成:UIView的方法来交换UISplitViewCintroller的观点为其他全屏的UIView实例中的UIWindow视图

0

我已经找到了下面的链接到一个解决方案创建一个自定义的splitview控制器,你可以调整这个来获得所需的效果。我不认为有可能改变正常的UISplitViewController的主视图和详细视图的框架大小(我尝试在iOS5中,它没有工作)。

Custom SplitView

-anoop

0

这可以用该方法viewWillTransitionToSize来完成,这个方法会被称为每当我们的设备方向的变化,并在下面将帮助你实现你想要的。

-(void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator{ 
    self.splitViewController.preferredDisplayMode = UISplitViewControllerDisplayModePrimaryHidden; 
} 

preferredDisplayMode可用于使主视图隐藏或显示或覆盖Detail View控制器。