[英]iOS 13 UISearchController + UIRefreshControl glitch
我正在使用UISearchController
在UITableViewController
中進行搜索,該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.