刷新控件和搜索栏导致表格视图/滚动视图出现奇怪的偏移,如何解决?

Posted

技术标签:

【中文标题】刷新控件和搜索栏导致表格视图/滚动视图出现奇怪的偏移,如何解决?【英文标题】:Refresh control and Search bar causes weird offset on table view / scroll view, how to fix? 【发布时间】:2018-09-12 12:58:39 【问题描述】:

我遇到了这个问题,如果我在刷新时进行一些搜索,有时刷新控件和表格视图会下移。

下图更好地解释了该问题。这就像整个视图发生了变化。

1 - 表格和刷新控制处于正常状态。 2 - 表格、搜索栏和刷新控件发生了变化。 3 - 如果拉动刷新,我可以看到刷新控制也发生了变化。

我改变了背景颜色,我可以看到整个表格视图发生了变化。

它是一个 UIViewController,里面有一个 TableView。

searchController.delegate = self
searchController.searchResultsUpdater = self
searchController.dimsBackgroundDuringPresentation = false
searchController.hidesNavigationBarDuringPresentation = false
//searchController.definesPresentationContext = true
searchController.searchBar.returnKeyType = UIReturnKeyType.done
tableView.tableHeaderView = searchController.searchBar

知道如何解决吗?

【问题讨论】:

尝试在您的 IB 中取消选中 adjustScrollViewInsets of UIViewController 已经取消勾选。并且表格视图的内容插入行为设置为从不。 【参考方案1】:

虽然你的问题不是很清楚,但我根据我的理解给你建议。

如果您不喜欢导航栏和搜索栏之间的空间,只需禁用 tableview 的反弹即可。

如果你觉得空间太大,你可能会在tableview和top view之间设置错误的约束常量。这里如果我设置-50,可能会很远。

最后你可以添加一张漂亮的图片作为视图的背景,空间可以充满有趣的效果。希望对您有所帮助。

【讨论】:

无法禁用反弹,因为它会禁用“拉动刷新”功能

以上是关于刷新控件和搜索栏导致表格视图/滚动视图出现奇怪的偏移,如何解决?的主要内容,如果未能解决你的问题,请参考以下文章

滚动表视图然后突然单击搜索栏会导致应用程序崩溃?

带有搜索显示控制器的刷新控件出现在搜索栏上方

问题:滚动表格视图,然后选择搜索栏(iphone)

如何使搜索栏不与表格视图一起滚动? [复制]

使用表格视图快速搜索控制器滚动

iOS 11:带有不透明导航栏的导航控制器内带有滚动视图的弹出视图控制器在转换期间导致奇怪的内容动画