3

我在我的 iPad 应用程序中使用 UISplitViewController,我不太喜欢弹出视图滑入并覆盖三分之一屏幕并在纵向模式下停留在那里的方式。

当弹出框滑入视图时,我正在调整详细信息视图的大小,这工作正常,除了顶部的导航栏保持全宽(并且位于弹出框下方)。我基本上希望它看起来像在横向模式下。

这是我用来调整视图大小的代码:

UIViewController *masterView = [svc.viewControllers objectAtIndex:0];
UINavigationController *detailNavView = [svc.viewControllers objectAtIndex:1];
UIViewController *detailView = [detailNavView.viewControllers objectAtIndex:0];

detailView.view.frame = CGRectMake(masterView.view.frame.size.width, 0, detailView.view.frame.size.width - masterView.view.frame.size.width, detailView.view.frame.size.height);

我已经尝试设置detailNavView.view.frame但没有任何反应。

如何调整包括导航栏在内的整体细节视图的大小?

4

2 回答 2

4

嗯,我认为UISplitViewController并不是那么灵活。这只是 Apple 决定的:横向拆分,纵向弹出窗口。详细视图占据了该控制器的整个视图(即主视图),因此您必须将其定义为另一种控制器的主视图的子视图才能像这样操作其导航栏。

自定义纵向视图的唯一解决方案是实际上取消 Apple 版本的拆分视图控制器并推出自己的版本。

也许最实用的解决方案只是在选择项目并在详细视图中显示后关闭弹出框。

于 2013-03-08T13:52:52.890 回答
0

答案是UISplitViewController 的 preferredPrimaryColumnWidthFraction属性 - 将其设置为 0.0-1.0 以指定主视图占用的相对间距。

于 2017-07-14T12:23:16.997 回答