隐藏导航栏并移动表格视图部分标题

Posted

技术标签:

【中文标题】隐藏导航栏并移动表格视图部分标题【英文标题】:Hide Nav Bar and move Table View Section Headers 【发布时间】:2014-11-04 00:51:44 【问题描述】:

我目前正在使用https://github.com/telly/TLYShyNavBar 类在滚动时隐藏我的导航栏,它工作得很好并且使用起来非常简单。但是我在表格视图控制器上使用它,所以当我向上滚动时,我的部分标题不会移动,它看起来像这样。

如何将部分标题上移到屏幕顶部。或者在滚动时使用不同的方式移动导航栏。

提前感谢您的帮助。

【问题讨论】:

我也存在这个问题。希望你能找到解决办法。 【参考方案1】:

您可以将第一个 TableViewCell 用作自定义导航栏,方法是向 TableViewCell 中包含的 contentview 添加按钮。它会像任何其他 TableViewCell 一样向上滚动。 TableViewCells 大多只是 UIView 的包装器。您可以像修改任何其他 UIView 一样修改该 UIView。每个 TableViewCell 都有一个名为 contentview 的属性,它是 Cell 中的主要 UIView。

例如,您可以在发送以下消息的第一个单元格中添加一个按钮 [self.navigationController popViewControllerAnimated:YES];

您可以将该按钮称为“返回”

https://developer.apple.com/library/ios/documentation/UIKit/Reference/UITableViewCell_Class/index.html#//apple_ref/occ/instp/UITableViewCell/contentView

【讨论】:

没有办法只移动节标题吗? 节标题应该自动移动。如果不是,则您的类别正在破坏 UITableViewController。 这是一个非常肮脏的解决方案,我建议永远不要这样做。【参考方案2】:

我找到了解决方案! 问题在于,部分标题停留在contentInsettop 值。即使navigation bar 不在视野范围内并且tableView 在下方可见,contentInset 仍将保持不变。

您必须根据滚动偏移量修改库以增加或减少contentInsettop 值。试试这个,你可以将它作为拉取请求发布到 github。

希望这会有所帮助! :)

【讨论】:

以上是关于隐藏导航栏并移动表格视图部分标题的主要内容,如果未能解决你的问题,请参考以下文章

向下滚动时隐藏导航栏并在用户使用 jquery 向上滚动页面时显示它,不能正常工作

禁用隐藏导航栏的触摸

启用自动布局的 iOS 调整视图大小

移动到新视图控制器时导航栏隐藏

如何隐藏顶部导航栏并在菜单中仅显示底部

隐藏导航栏会导致其下方和上方的空间