繁体   English   中英

iOS 13 UISearchController + UIRefreshControl故障

[英]iOS 13 UISearchController + UIRefreshControl glitch

我正在使用UISearchControllerUITableViewController中进行搜索,该UITableViewController也支持通过UIRefreshControl拉入刷新。

在简化的演示项目中,安装非常简单

override func viewDidLoad() {
  extendedLayoutIncludesOpaqueBars = true
  title = searchTerm ?? "Search"
  super.viewDidLoad()
  setupSearch()
  setupRefresh()
}

private func setupSearch() {
  searchController.searchResultsUpdater = self
  navigationItem.searchController = searchController
  definesPresentationContext = true

  //
  //  If this is set to `true` (which is also the default), 
  // UISearchBar and UIRefreshcontroll are buggy
  //
  navigationItem.hidesSearchBarWhenScrolling = true
}

private func setupRefresh() {
  refreshControl = UIRefreshControl()
  refreshControl?.addTarget(self, action: #selector(refresh), for: .valueChanged)
}

这在iOS 12中有效,但现在在iOS 13中(针对带有Xcode 11 GM的iOS 13进行了编译),刷新动画已损坏

在此处输入图片说明

到目前为止,我发现的唯一“解决方法”是将navigationItem.hidesSearchBarWhenScrolling设置为false ,但这显然会使搜索栏始终保持在屏幕上,即使在滚动时也是如此。

这是一个演示该问题的示例项目: https : //github.com/iv-mexx/UISearchControl-UIRefreshControl-iOS13-Bug/tree/feature/ios13

更新:这仍然在Xcode 11 GM Seed 2中被破坏

如果为您的应用程序选择打开大标题,这似乎也可以解决此问题。

这可能就是为什么Apple不在自己的应用程序中遇到问题的原因。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM