在拆分视图控制器中调整主视图和详细视图控制器的大小?

时间:2012-04-16 02:38:58

标签: objective-c xcode4.2 uisplitviewcontroller

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

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

在viewDidLoad函数中,但这似乎不会影响任何内容。

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

3 个答案:

答案 0 :(得分:10)

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

以下答案对于iOS< 8:


您无法更改拆分视图控制器的大小。

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

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

答案 1 :(得分:4)

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

答案 2 :(得分:-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];