gpt4 book ai didi

ios - 如何将 UISearchBar 锁定到位以监督

转载 作者:搜寻专家 更新时间:2023-10-31 22:56:14 25 4
gpt4 key购买 nike

我正在使用 UISearchController与其 UISearchBar 一起. UISearchController与其 UITableView 一起在我的主视图中放置在 subview 内。

我的目标是将 UISearchBar 锁定在它的位置,这样当它处于事件状态时,它就不会移动。现在正在发生以下情况:

enter image description here enter image description here

我已经广泛搜索了这个问题并尝试了以下方法,例如:

  1. self.searchController.hidesNavigationBarDuringPresentation = false ,它只是突然将搜索栏移动到屏幕中间。

  2. definesPresentationContext = true ,这不会改变行为

  3. self.extendedLayoutIncludesOpaqueBars = true ,这不会改变行为

  4. 使用 UIBarPositioningDelegate提到的方法here ,奇怪的是不能翻译成 Swift 因为我不能插入 AnyObject<UIBarPositioning>因为它在 Objective C 版本中并且仍然被识别为 override功能

任何建议表示赞赏。

编辑:

这是搜索项的设置:

    searchController.searchResultsUpdater = self
searchController.dimsBackgroundDuringPresentation = false
definesPresentationContext = true
searchTableView.tableHeaderView = searchController.searchBar

最佳答案

在 Storyboard 中将 TableView 的 Style 属性设置为 Plain,并使用 SearchBar 作为节标题 View 。除了以下代码,我在 Apple 的“Table Search with UISearchController”示例中注释掉了 tableView.tableHeaderView = searchController.searchBar,它工作正常。

override func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
override func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
return searchController.searchBar.frame.size.height
}
override func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
return searchController.searchBar
}

关于ios - 如何将 UISearchBar 锁定到位以监督,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46369669/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com