我正在尝试在UIRefreshControl上使用标准的UISearchControllerUITableViewController。但是,它看起来并没有达到预期的效果。刷新时,滚动会在导航栏上留出较大的空白区域,大概是微调框应该位于的位置:

ios - iOS 11刷新控件+搜索栏=刷新时缺少微调器-LMLPHP

我有一个示例项目on GitHub。控件的设置方法如下:

override func viewDidLoad() {
    super.viewDidLoad()

    let spinner = UIRefreshControl()
    spinner.addTarget(self, action: #selector(refresh), for: .valueChanged)
    refreshControl = spinner

    searchController = UISearchController(searchResultsController: nil)
    navigationItem.searchController = searchController
}

我尝试将刷新控件分配给UITableView上的属性,而不是UITableViewController上的属性,这没有什么区别。

有人遇到过同样的问题吗?

最佳答案

您可以使用旧的方式使用UIRefreshController,如下所示:

override func viewDidLoad() {
    super.viewDidLoad()

    let spinner = UIRefreshControl()
    spinner.addTarget(self, action: #selector(refresh), for: .valueChanged)
    self.tableView.addSubview(spinner)

    searchController = UISearchController(searchResultsController: nil)
    navigationItem.searchController = searchController
}

关于ios - iOS 11刷新控件+搜索栏=刷新时缺少微调器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46790340/

10-12 14:31
查看更多