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

标签 ios uitableview ios11 uisearchcontroller uirefreshcontrol

我正在尝试在 UITableViewController 上使用标准的 UIRefreshControlUISearchController。然而,它看起来不像它应该做的那样。刷新时,滚动会留下一个很大的空白区域的导航栏,大概是微调器应该在的地方:

enter image description here

我有一个示例项目 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 11 刷新控件 + 搜索栏 = 刷新时缺少微调器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46790340/

相关文章:

ios - AVAudioSession用于音频视频通话

ios - 向 UITableView 插入行时的行为

ios - 是否可以向没有来源的现有枚举添加案例?

ios - 向上滚动时隐藏大标题

objective-c - 强制重新加载 UITableView - objective-c

ios - Xcode 在单元测试中写入文件

iOS 11 文件提供程序 - 永远不会枚举工作集

ios - 静默推送未传送到 iOS 11 上的应用程序

ios - `UIScreen.main.snapshotView` 设备上显示空白

ios - 如何设置不同自定义UITableViewCell的属性