【问题标题】:Resize master and detail view controllers in a split view controller?在拆分视图控制器中调整主视图控制器和详细视图控制器的大小?
【发布时间】:2012-04-27 10:17:20
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: objective-c xcode4.2 uisplitviewcontroller


    【解决方案1】:

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

    以下答案对于 iOS


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

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

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

    【讨论】:

    • 嗯,好的,谢谢。还有其他我可以使用的解决方法吗?我真正需要的是一个带有两个垂直窗格的视图,我可以为每个窗格选择一个大小。
    • 你可以只用两个视图做一个大视图,并在代码中分配每个视图。
    【解决方案2】:
    - (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];

    【讨论】:

    • 这些方法适用于 Mac,带有 NSSplitViewDelegate。 OP 没有指定 Mac 或 iOS 应用程序,但是它们有一个标签,上面写着uisplitviewcontroller,它适用于 iOS。
    【解决方案3】:

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

    【讨论】:

    • 这个视图控制器有更新版本吗?它似乎过时且不受支持。不过,它确实可以在 iOS7 上运行。
    • @fatuhoku 我不确定,我有点停止关注MGSplitViewController 并为UISplitViewController 构建了自己的包装器,这让我能够实现我所需要的。老实说,如果我现在必须做一个拆分视图控制器,我会做一个新的自定义控制器,而不是使用MGSplitViewController,因为通过父/子视图控制器包含非常容易实现。
    • 是的——到目前为止,使用容器视图对我也很有效。我最后也没用MGSplitViewController。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多