7

我正在使用 Xcode 4.2 并正在开发一个应用程序,我希望菜单屏幕使用拆分视图。真的,我只需要拆分视图控制器将一些菜单选项拆分为左窗格和右窗格。我希望能够为主视图控制器和详细视图控制器设置自定义大小,但似乎没有什么对我有用。我尝试使用以下代码更新每个视图控制器的帧大小:

[self.view setFrame:CGRectMake(0, 0, 768, 502)];

在 viewDidLoad 函数中,但这似乎没有任何影响。

有没有办法为拆分视图控制器的主视图控制器和详细视图控制器设置自定义大小,而无需在 AppDelegate.m 文件中实例化视图控制器?我希望能够编辑情节提要中的每个视图控制器,因为它们是带有很多按钮等的菜单屏幕。

4

3 回答 3

10

编辑:在 iOS 8+ 中,可以通过指定 minimum/maximumPrimaryColumnWidth 属性或 preferredPrimaryColumnFraction 来更改相对宽度。

对于 iOS < 8,以下答案仍然适用:


您不能更改拆分视图控制器的大小。

见这里:http: //developer.apple.com/library/ios/#featuredarticles/ViewControllerPGforiPhoneOS/Introduction/Introduction.html

“UISplitViewController 类是管理两个信息窗格的容器视图控制器。第一个窗格具有 320 点的固定宽度和与可见窗口高度匹配的高度。第二个窗格填充剩余空间。”

于 2012-04-16T04:10:48.977 回答
4

使用MGSplitViewController. 它提供了与 UIViewController 类似的 API,但提供了额外的功能,例如拆分位置,这是您所需要的。

于 2012-05-12T17:13:09.607 回答
-1
- (CGFloat)splitView:(NSSplitView *)splitView constrainMinCoordinate:(CGFloat)proposedMinimumPosition ofSubviewAt:(NSInteger)dividerIndex;
{

    return proposedMinimumPosition + 238;
}

- (CGFloat)splitView:(NSSplitView *)splitView constrainMaxCoordinate:(CGFloat)proposedMaximumPosition ofSubviewAt:(NSInteger)dividerIndex;
{
    return proposedMaximumPosition - 200;
}

在上述委托方法之前添加[splitView addDelegate:self];

于 2013-06-19T10:54:06.913 回答