簡體   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