UINavigationBar 自定义标题被背景隐藏
Posted
技术标签:
【中文标题】UINavigationBar 自定义标题被背景隐藏【英文标题】:UINavigationBar custom title being hidden by background 【发布时间】:2011-09-08 01:32:09 【问题描述】:我正在使用此代码将自定义UIImageView
添加到我的UINavigationBar
:
UIImageView *background = [[[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 44)] autorelease];
[background setImage:[UIImage imageNamed:@"nav_background.png"]];
[background setTag:kTagForReference];
[self.navigationController.navigationBar insertSubview:background atIndex:0];
然后我使用以下代码添加自定义标题:
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 400, 44)];
...
[self.navigationItem setTitleView:label];
[label release];
但在我的一些推送视图中,标题被隐藏(或不可见)。如果标题消失,我似乎无法将两个以上的视图推送到堆栈上。
我试图将我的UIImageView
背景强制到栏的后面,但这仍然没有帮助。我已经打印了UINavigationBar
的子视图,我可以看到 UILabel 在那里,我只是看不到它!
任何帮助将不胜感激。
【问题讨论】:
【参考方案1】:如果您可以运行dumpWindows() function,输出将显示视图层次结构,以便您查看覆盖它的视图。
【讨论】:
【参考方案2】:您很可能希望使用UIToolBar
而不是NavigationBar
。然后您可以将子视图添加到UIToolbar
。
将 UILabel 带到最前面的视图。
[self.view bringSubviewToFront: label];
【讨论】:
如果我使用UIToolbar
,那么我的所有导航堆栈会发生什么?
只要把 UIToolbar 添加到你的控制器,然后隐藏 NavigationBar,什么都没有。您甚至可以设置“返回”或“完成”按钮来弹出或关闭导航控制器。以上是关于UINavigationBar 自定义标题被背景隐藏的主要内容,如果未能解决你的问题,请参考以下文章
UINavigationBar 自定义背景与悬垂(iOS 5)
如何使用自定义背景图像从 UINavigationBar 和 UIToolbar 中删除圆角?
iOS 11 UINavigationBar 自定义背景总是在状态栏下扩展
iPhone - 如何使用我的纹理背景自定义 UINavigationBar 后退按钮