带有NavigationBar LargeTitle和SearchController的iOS 11 UIRefreshControl消失了

时间:2017-10-17 15:23:13

标签: swift uinavigationbar ios11 uisearchcontroller uirefreshcontrol

我有一个带有largeTitle和searchcontroller的navigationBar,我的tableView有一个refreshcontrol。

当我拉动刷新时,refreshcontrol的activityIndi​​cator消失但是de刷新过程继续,即使进程完成并且我调用了UIRefreshControll的.endRefreshing(),导航栏也没有恢复到正常大小。

enter image description here

有同样问题的人?

3 个答案:

答案 0 :(得分:19)

我已经搜索了几个星期的解决方案,今天,我终于完成了它。解决方案很简单,我不敢相信我之前没有找到。

我正在使用带有UITableView的普通UIViewController。设置了我的布局约束,以便UITableView固定为0到底部和顶部布局指南,如下所示:

enter image description here

一旦我改变了它并将UITableView固定到Superview,其中0到所有边缘,它神奇地开始工作:

enter image description here

我甚至不需要设置任何其他内容。我非常希望能为你解决这个问题,因为它非常烦人......

如果上述方法不起作用,除此之外,还需要设置

self.extendedLayoutIncludesOpaqueBars = YES;

或检查故事板中的“扩展边缘/在Opque栏下”

答案 1 :(得分:10)

尝试

self.extendedLayoutIncludesOpaqueBars = YES;

如果你有不透明的导航栏。它为我解决了这个问题。

答案 2 :(得分:2)

尝试使用此代码段:

self.navigationController?.navigationBar.prefersLargeTitles = false
self.navigationController?.navigationBar.prefersLargeTitles = true;