gpt4 book ai didi

iphone - 非全屏 UINavigationController

转载 作者:太空狗 更新时间:2023-10-30 03:26:24 27 4
gpt4 key购买 nike

是否可以以不使用整个窗口的方式使用 UINavigationController?

我试过设置它的 View 框架以及将它的 View 添加到另一个(非全屏) View 而不是窗口,但似乎都不起作用。

最佳答案

您不能直接更改 UINavigationController 或其 subview 的大小,因为 UINavigationController 会自动将它们调整为全屏,无论它们的框架设置为什么。到目前为止,我能够克服这个问题的唯一方法如下:

首先,像往常一样创建一个 UINavigationController 实例:

UINavigationController *nc = [[UINavigationController alloc] init];
self.navController = nc;
[nc release];

然后,创建一个 UIView 实例,限制为您真正想要的大小:

UIView *navView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, DESIRED_HEIGHT)];
navView.clipsToBounds = YES;
[navView addSubview:self.navController.view];
[self.view addSubview:navView];
[navView release];

navView 的 clipsToBounds 属性必须设置为 YES,否则 UINavigationController 及其 View 仍将全屏显示。然后,将 UINavigationController 添加到该受限 View 。然后可以将此 UIView 添加到 UIViewController 的 View 中,如上所示。

需要注意的是,任何添加到 UINavigationController 的 UIViewController 的 View 都将其内容限制在 navView 的边界内,而不是添加到 UINavigationController 的 subview 的框架,因此每个 subview 中的内容都应正确创建显示 navView 的边界。

无论如何,这种技术确实有效,因为我已经创建了一个成功使用它的应用程序。我得到这个工作的唯一其他方法是从头开始创建一个自定义导航 Controller 类,复制 UINavigationController 的功能,但没有自动调整大小(我过去也做过),这可以是痛。希望这会有所帮助。

关于iphone - 非全屏 UINavigationController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2962162/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com