向上滚动 tableview 以隐藏导航栏的一半,整个表格得到偏移

Posted

技术标签:

【中文标题】向上滚动 tableview 以隐藏导航栏的一半,整个表格得到偏移【英文标题】:scroll up tableview to hide half of navigation bar and the whole table gets offset 【发布时间】:2017-08-05 04:32:45 【问题描述】:

我正在使用嵌入在导航控制器中的 UITableViewController,我已经检查了情节提要中导航控制器的“滑动时隐藏栏”。没有疯狂的代码,没有覆盖滚动视图函数,没有编写任何会偏移任何视图的代码。

当我稍微向上滚动表格视图并在导航栏半隐藏时释放它时,整个表格会偏移并且它不在屏幕上(有时表格的左上角是可见的),然后如果我向上滚动表格视图一点点,它又回到了正常位置,如果我在情节提要中选中“调整滚动视图插图”,整个屏幕会闪烁黑色。

有人遇到过同样的问题吗? p.s.我正在使用 Xcode 9 beta 和 ios 10.3,不确定这是否与它有关。

编辑:

导航栏滚动到一半

释放后的视图

【问题讨论】:

我可以看到输出结果吗? 查看编辑@iOSGeek 你在这里使用搜索栏是不是嵌入在不同的视图中。您使用了隐藏栏是的,它正在工作我认为由于在 tableViewCONtroller 上使用 Searchbar 而出现问题您的栏 sis 被隐藏,但不是那个搜索栏,因为看到它没有超出状态栏您可以上传您的代码,以便我看看在里面 我从导航栏中删除了所有项目,它仍然无法正常工作,导航栏没有超出状态栏的原因是我将状态栏背景颜色设置为与导航栏相同,所以当导航栏被隐藏时,状态栏可以有背景@iOSGeek 我可以看看你的代码吗?如果不是完整的项目,我想看看你提供的所有约束或将故事板和 TableViewController 文件发送给我 【参考方案1】:

所以我创建了一组新的 TableviewController 和 NavigationController,并通过对其添加更改来逐步对其进行测试,结果我已将导航栏设置为故事板中的半透明,一旦我取消选中它,问题是解决。如果我在半隐藏位置释放导航栏,仍然会有不想要的反弹效果,这似乎是调整偏移量的视图,但它比原来的要好得多。

附:确保选中“调整滚动视图插图”。

编辑:

事实证明,如果您想保持导航栏不透明,将 extendedLayoutIncludesOpaqueBars 设置为 True 也可以解决此问题。

【讨论】:

以上是关于向上滚动 tableview 以隐藏导航栏的一半,整个表格得到偏移的主要内容,如果未能解决你的问题,请参考以下文章

向下滚动以逐渐隐藏菜单栏或视图并向上滚动

带有半透明导航栏的滚动条

锚定到应用栏的 FAB 不会在向上滚动时隐藏

常规高度导航栏的滚动边缘外观

隐藏导航栏会导致视图向上移动

滚动时如何在不同屏幕上调整导航栏的大小