ios,导航栏与其内容视图重叠
Posted
技术标签:
【中文标题】ios,导航栏与其内容视图重叠【英文标题】:ios, navigationbar is overlapped with its content view 【发布时间】:2014-10-27 03:34:28 【问题描述】:我正在展示一个如下所示的视图控制器,并且所展示的视图控制器的内容与它自己的导航栏重叠。
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 的框架原点/大小来解决它,但是,有没有更简单的方法?
self.webview 是contentview,我曾经有如下代码让webview 适应整个屏幕-导航栏-状态栏。 (当我只是 pushedViewController
时效果很好)
self.webview.autoresizingMask = (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight);
[self.view addSubview:self.webview];
self.webview.frame = self.webview.superview.bounds;
【问题讨论】:
可以分享截图吗? @AsifAsif:我添加了它们,上面是当前的错误图像,第二个是所需的图像。 尝试在viewDidLoad
中添加这些行:self.navigationController.navigationBar.translucent = YES; self.edgesForExtendedLayout = UIRectEdgeNone;
@AsifAsif: 神秘.. 但哇,它奏效了! ..您可以将您的评论移至答案以便我标记它吗?
我实际上在 SO 答案之一中看到了该解决方案,但不相信它会影响我的情况。因为我的导航栏已经是半透明的了..
【参考方案1】:
请在您的 viewDidLoad
方法中添加以下行:
self.navigationController.navigationBar.translucent = YES;
self.edgesForExtendedLayout = UIRectEdgeNone;
【讨论】:
以上是关于ios,导航栏与其内容视图重叠的主要内容,如果未能解决你的问题,请参考以下文章