ios,navigationbar与其内容视图重叠

slhcrj9b  于 2023-06-25  发布在  iOS
关注(0)|答案(2)|浏览(136)

我展示了一个视图控制器,如下所示,视图控制器的内容与它自己的导航栏重叠。

MyViewController *myViewController = [[MyViewController alloc] initWithNibName:nil bundle:nil];
UINavigationController *navigationController = 
    [[UINavigationController alloc] initWithRootViewController:myViewController];

//now present this navigation controller modally 
[self presentViewController:navigationController
                   animated:YES
                   completion:^{

                        }];

我可能可以通过调整contentView的框架原点/大小来修复它,但是,有更简单的方法吗?
webview是contentview,我曾经使用以下代码来使webview适合整个屏幕- navigationbar - statusbar。(当我只使用pushedViewController时,它工作得很好)

self.webview.autoresizingMask = (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight);
[self.view addSubview:self.webview];
self.webview.frame = self.webview.superview.bounds;

shyt4zoc

shyt4zoc1#

请在viewDidLoad方法中添加以下行:

self.navigationController.navigationBar.translucent = YES; 
self.edgesForExtendedLayout = UIRectEdgeNone;
wi3ka0sx

wi3ka0sx2#

这是一个古老的问题。接受的答案可能仍然有效,但实际上只适用于iOS 7到9。在iOS 10中,文档是这样说的:
使用视图的安全区域来确定界面的哪些部分被其他内容遮挡,而不是使用此属性。有关详细信息,请参见UIView的safeAreaLayoutGuide和safeAreaInsets属性。

相关问题