UINavigationbar 提示与屏幕内容重叠
Posted
技术标签:
【中文标题】UINavigationbar 提示与屏幕内容重叠【英文标题】:UINavigationbar Prompt overlaps the screen content 【发布时间】:2013-10-18 23:00:13 【问题描述】:遇到了一个奇怪的问题。如果我在导航控制器上设置提示,导航栏会与屏幕内容重叠。处理这个问题的正确方法是什么?
-(id)initwithsomestuff:(stuff)
...
self.title = @"My Title";
self.navigationItem.prompt = "@Prompt";
...
当这个视图控制器被推上时,它首先出现,然后调整它的导航栏的大小以在其中显示提示。但这有一个令人讨厌的副作用,即不调整下面屏幕内容的大小,并且涵盖了我在屏幕上实际需要的大量内容。
处理此问题的首选方法是什么?如果有帮助,布局在 xib 中。
【问题讨论】:
【参考方案1】:您遇到的一个问题是您的 init 函数需要调用 super.按照你的例子,它看起来像这样:
- (id)initWithSomeStuff:(id)stuff
self = [super init];
if (self)
self.title = @"My Title";
self.prompt = @"Prompt";
return self;
接下来,您是在针对 ios 7 进行开发吗?默认情况下,使用导航栏覆盖内容的预期行为。如果您想抑制这种行为,请在您的视图控制器上执行以下操作:
self.edgesForExtendedLayout = UIRectEdgeNone;
self.extendedLayoutIncludesOpaqueBars = NO;
您也可以在故事板的视图控制器上设置这些。它们显示在“属性”选项卡的“延伸边”下。
【讨论】:
感谢 self = [super init] 的存在......为了简洁起见,我把它放在这里了。 edgesForExtendedLayout 解决了这个问题。以上是关于UINavigationbar 提示与屏幕内容重叠的主要内容,如果未能解决你的问题,请参考以下文章
底部导航栏与 Jetpack Compose 中的屏幕内容重叠
UINavigationBar 和 UINavigationController 的内容之间的差距