【问题标题】:iOS 11 UIRefreshControl with NavigationBar LargeTitle and SearchController disappearingiOS 11 UIRefreshControl 与 NavigationBar LargeTitle 和 SearchController 消失
【发布时间】:2018-03-29 08:32:39
【问题描述】:

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

当我拉动刷新时,refreshcontrol 的 activityIndi​​cator 消失但刷新过程继续,即使过程完成并且我调用 UIRefreshControll 的 .endRefreshing(),navigationBar 也不会恢复到正常大小。

有同样问题的人吗?

【问题讨论】:

  • 我遇到了完全相同的问题。刷新完成后,底层表视图会跳转回原来的位置,但导航栏保持刷新状态。您找到解决方案了吗?
  • @xxtesaxx 我的回答可能对你有帮助:stackoverflow.com/a/47659869/2145198

标签: swift uinavigationbar ios11 uisearchcontroller uirefreshcontrol


【解决方案1】:

我已经为此搜索了数周的解决方案,今天,我终于成功了。解决方案是如此简单,我不敢相信我之前没有发现。

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

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

我什至不需要设置其他任何东西。我非常希望这也能为您解决问题,因为它太烦人了...


如果以上都不起作用,除了你还需要设置

self.extendedLayoutIncludesOpaqueBars = YES;

或检查情节提要中的“Extend Edges / Under Opque Bar”

【讨论】:

  • 这让我头疼不已!你知道为什么会这样吗?
  • 很遗憾对我没用...(通过查看代码而不是情节提要)
  • 您是否通过代码设置约束?确保不要将滚动视图固定到布局指南或安全区域,而是固定在超级视图的顶部和底部。
  • @BrunoRocha 我的解决方案可能会对您有所帮助:stackoverflow.com/a/47659869/2145198
  • 这太棒了!
【解决方案2】:

试试

self.extendedLayoutIncludesOpaqueBars = YES;

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

【讨论】:

  • 它为我修好了!谢谢
  • 工作就像一个魅力!表格视图跳了回来,但导航栏仍然很大。哦,指示器是不可见的……多亏了你,一切都修好了!
  • 这仅在我完成 xxtesaxx 答案中的内容时才有效
【解决方案3】:

尝试使用这段代码sn-p:

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

【讨论】:

  • 上下文?您在何时何地使用它?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-20
  • 1970-01-01
相关资源
最近更新 更多