如何在 UINavigationController 的 bar 上方添加 UIImageView
Posted
技术标签:
【中文标题】如何在 UINavigationController 的 bar 上方添加 UIImageView【英文标题】:How to add UIImageView above UINavigationController's bar 【发布时间】:2012-05-29 19:25:40 【问题描述】:我有基于 UINavigationController 的 UITableView。单击任何行应用程序后,切换到另一个具有 UINavigationController 的视图。在新视图中,我想在 UINavigationController 的栏上方添加 UIImageView 但不覆盖它。我该怎么做?
【问题讨论】:
“高于栏,但不覆盖”?你知道这是矛盾的吗? 以上是什么意思?在屏幕上垂直较高的位置,还是在导航栏的顶部分层?如果是后者,则同上 CodaFi,除非您希望它是透明的,在这种情况下,这样说会消除您问题中的很多困惑和歧义。 @MartinH 是的,在屏幕上的垂直位置较高。对不起我的英语不好。 【参考方案1】:(根据您的评论)这是我将图像放置在 y 坐标“上方”的方法,而不是子视图。
在新视图中,
隐藏navigationController的navigationBar [navigationController.navigationBar setHidden:YES];
添加一个 UIToolbar,其原点是您感兴趣的,大小为 (320, 44),假设您在 iPhone 上执行此操作,并且图像垂直位于该栏上方。
如果您转到导航栏上方没有图像的旧/上一个视图,请记住取消隐藏导航栏。
【讨论】:
【参考方案2】:将您的 UIImageView 添加为 self.navigationController.view 的子视图,并提供接近或小于零的坐标以将其定位到高于 UINavigationBar 的位置。
【讨论】:
【参考方案3】:我找到了更简单的解决方案。只需要设置self.navigationController.navigationBar所需的frame坐标:
[self.navigationController.navigationBar setFrame:CGRectMakeCoordinates];
【讨论】:
它对我不起作用 :(,有什么建议吗?我在 UITabBarController 中有导航栏。以上是关于如何在 UINavigationController 的 bar 上方添加 UIImageView的主要内容,如果未能解决你的问题,请参考以下文章
在 UINavigationController 中设置时图像不显示
将 managedObjectContext 发送到 viewController 崩溃
ID:[...] 的 NSManagedObject 已失效
使用 UINavigationController 从另一个控制器更新或重新加载 UIViewController?