我有一个UITableView
和一个UIRefreshControl
,并且我正在使用UISearchController
向导航栏中添加一个UISearchBar
( 到表视图的标题),
当用户下拉时,出现搜索栏。如果他们继续拉动,则会出现刷新控件,并在搜索栏上方的导航栏中旋转。这是预期的行为。
但是,当我以编程方式启动刷新控件时,它显示在表格视图的导航栏下方,而不是搜索栏上方的导航栏中。 (在任何一种情况下,都调用了相同的函数,因此似乎必须使用相同的刷新控件。)可以,除了当我完成网络调用并且以编程方式停止刷新控件时,导航栏消失了。屏幕上,在第一个单元格开始之前,我的表格视图顶部留有一个空白,其中留有多余的空白。有时我可以在屏幕上下拉,导航栏会弹出回到应该的位置,但是表格视图顶部的间隙仍然存在,在这种情况下,搜索栏与导航栏重叠。如果相关的话,所有这些都使用模拟器。
我尝试过手动设置表格视图的内容偏移量,但这似乎无济于事。我已经尝试过在启动微调器或停止微调器时(以及同时执行这两种操作时)执行此操作,并且对于不同的量,应将其设为零。
我尝试在启动后立即停止刷新控件,但在这种情况下我看不到问题(但显然这对用户没有好处,因为他们几乎看不到刷新控件),但是在此之后将其停止我的网络通话完成后,我无法摆脱这个空白。我还尝试了启动它但没有停止它,这并没有摆脱导航栏,但是确实在表格视图的顶部留下了空白,如下所示:
这是我启动和停止刷新控件的方式:
tableView?.refreshControl?.beginRefreshing()
tableView?.refreshControl?.endRefreshing()
我正尝试在开始网络调用之前在viewDidLoad
中启动它,并在表视图准备好重新加载新鲜内容时将其停止。
我还尝试了调整automaticallyAdjustsScrollViewInsets
并尝试了tableView.contentInsetAdjustmentBehavior = .never
而没有任何改变。
对于我在这里可能会缺少的任何想法,我将不胜感激!谢谢!
这是我在模拟器中进行刷新并且导航栏从屏幕顶部消失后的屏幕截图。我已经拉了一点,所以您可以看到导航栏的绿色以显示它的位置,但是如果不拉下屏幕,您只会在其中看到空白:
如果我能够拉下并使导航栏弹出到位(我不知道为什么有时这样做,但有时却不行),则它会与搜索栏重叠,如下所示:< / p>