2015-02-06 89 views
2

我试图在导航栏的后面添加UIImageView
原因是因为我想创建一个导航栏实际上是一个图片(后退按钮在左边)的UITableView,但我希望图片能够随tableview一起滚动并且图片完全滚动出来。导航栏按照常规显示。
我对此问题的解决方案:
UIImageView添加到UITableView的顶部,并使导航栏显示为透明。为UITableView设置一个contentOffset,该UITableViewUIScrollView的子类,以便在显示视图时,看起来图片正在填充导航状态栏。
When the view is shown, it is exactly what I want. 问题:
如果我向上滚动,而不是弹回,将透明状态栏被示出(用,因为它是透明的背景的颜色)。
If I scroll up, instead of bouncing back, I see the transparent navigation bar. 可能的方式来解决这个新问题:
我想试图限制ScrollView大小与问题得到解决,但失败了。
所以我觉得有可能将UIImageView添加到导航栏的“后面”,以便它没有任何偏移?从那以后,我的生活将会变得更加轻松。
有关解决这个问题或其他新方法以获得相同UI /效果的任何建议?
相关question.将UIImageView添加到NavigationBar的背面(不是背景图片)

+0

您可以将图像视图添加为导航标题视图的子视图 – 2015-02-06 17:26:25

+0

@JadFeitrouni但是,如果我向下滚动,图像将始终在那里?我希望图像在屏幕上滚动时由普通标题替换。 – Ra1nWarden 2015-02-06 17:31:51

+0

是的你是对的,现在我得到你想要做的。 – 2015-02-06 17:35:04

回答

1

我会通过在表格顶部添加表格标题或单元格来完成此操作,该表格包含图像。

创建表视图,以便它一直延伸到屏幕的顶部。在顶栏之下延伸选项。我还没有用UITableViewController这样做过,但我已经在UIViewController的视图中嵌入了UITableView,顶部约束设置为0,而不是顶部布局指南。

现在,当你运行这个表时,你的桌子将填满整个屏幕,顶部的标题或单元格将在顶部显示你的图片。

滚动时,你既可以使用UIScrollViewDelegate来检测运动或实施tableView:didEndDisplayingCell:forRowAtIndexPath:

我不知道,当你想导航栏去无明确的100%。如果它的图像在屏幕上显示,那么didEndDisplayingCell应该是好的。如果当单元格底部通过导航栏底部时,则滚动视图可能是您唯一的选择。

这样也会像您期望的那样反弹,当您拉下时它会回弹到顶部。

希望这会有所帮助。

+0

感谢您的见解。我用'UITableViewController'完成了这个技巧,只需勾选视图控制器检查器中的Adjust Scroll View Insets即可。现在就像魔术一样! – Ra1nWarden 2015-02-06 21:22:05