gpt4 book ai didi

ios - UINavigationController 的 View 和 20 点偏移

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:20:06 25 4
gpt4 key购买 nike

这是一个已经发布的问题,但我需要了解以下场景的情况。我正在开发一个 iPad 应用程序,并创建了一个 UINavigationController,如下所示(测试目的)。

UINavigationController* navigationController = [[UINavigationController alloc] init];        
navigationController.view.backgroundColor = [UIColor redColor];

创建后,我将 UINavigationController 的 View 添加为 UIViewController 的 subview 。

[self.view addSubview:navigationController.view];

结果如下图所示:

enter image description here

如您所见,UINavigationController 的状态栏和导航栏之间存在间隙。由于 UINavigationController 的 View 是红色的,导航栏的框架似乎有那个间隙。

我找到了解决问题的技巧。通过为 UINavigationController 设置框架,导航栏位于正确的位置。

CGRect statusBarFrame = [[UIApplication sharedApplication] statusBarFrame];
CGRect frameRect = CGRectMake(navigationController.view.frame.origin.x, navigationController.view.frame.origin.y - statusBarFrame.size.height, navigationController.view.frame.size.width, navigationController.view.frame.size.height);

navigationController.view.frame = frameRect;

现在,由于我不太喜欢这种 hack,而且我会理解发生了什么,您有什么建议可以找到解决问题的优雅解决方案吗?

提前谢谢你。

最佳答案

那 20px 的偏移是为了状态栏,导航 Controller 被设计成全屏的,但是你把它添加到主视图的 subview 中。

关于ios - UINavigationController 的 View 和 20 点偏移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9260008/

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