添加一个 UIImageView 到 NavigationBar 的后面(不是背景图片)

Add a UIImageView to the back of NavigationBar (NOT background image)

我正在尝试将 UIImageView 添加到导航栏的后面。
原因是因为我想创建一个 UITableView 其导航栏实际上是一个图片(左侧有后退按钮)但是我希望图片随着tableview滚动并且当图片完全滚动时。导航栏正常显示。
我对这个问题的解决方案:
UITableView 的顶部添加一个 UIImageView 并使导航栏透明。为 UIScrollView 的子类 UITableView 设置一个 contentOffset,以便在呈现视图时,图片看起来像是填充了导航状态栏。
问题:
如果我向上滚动,而不是弹回,则会显示透明状态栏(背景颜色是透明的)。
解决这个新问题的可能方法:
我正在考虑尝试限制 ScrollView 大小来解决问题但失败了。
所以我觉得是否可以将 UIImageView 添加到导航栏的 "back" 以便它在那里没有任何偏移?那样的话,我的生活就会轻松很多。
关于解决此问题或其他获得相同 UI/effect 的新方法的任何建议?
相关 question.

我会通过在包含您的图片的 table 顶部添加一个 table header 或单元格来做到这一点。

创建 table 视图,使其一直延伸到屏幕顶部。扩展 Under Top Bars 选项。我没有使用 UITableViewController 完成此操作,但我已经使用 UITableView 嵌入 UIViewController 的视图中完成此操作,并将视图的顶部约束设置为 0 而不是顶部布局指导。

现在,当您 运行 时,您的 table 将填满整个屏幕,顶部 header 或单元格将显示在顶部显示您的图片。

当您滚动时,您可以使用 UIScrollViewDelegate 检测移动或实施 tableView:didEndDisplayingCell:forRowAtIndexPath:

我不是 100% 确定您希望导航栏何时变得不清晰。如果它的图像离开屏幕,那么 didEndDisplayingCell 应该是好的。如果单元格底部从导航栏底部经过,那么滚动视图可能是您唯一的选择。

当您向下拉时,它也会像您预期的那样反弹,并且它应该弹回顶部。

希望对您有所帮助。