【发布时间】:2017-09-22 16:53:26
【问题描述】:
我正在使用UISearchController 和它的UISearchBar。 UISearchController 与其UITableView 一起放置在我的主视图的子视图中。
我的目标是锁定 UISearchBar 在它的位置,所以当它处于活动状态时,它不会移动。目前正在发生以下情况:
我已经广泛搜索了这个问题并尝试了以下方法:
self.searchController.hidesNavigationBarDuringPresentation = false,它只是突然将搜索栏移动到屏幕中间。definesPresentationContext = true,不会改变行为self.extendedLayoutIncludesOpaqueBars = true,不会改变行为使用
UIBarPositioningDelegate提到的 here 方法,奇怪的是它无法转换为 Swift,因为我无法插入AnyObject<UIBarPositioning>,因为它在 Objective C 版本中仍然被识别为override功能
感谢任何建议。
编辑:
这里是搜索项的设置:
searchController.searchResultsUpdater = self
searchController.dimsBackgroundDuringPresentation = false
definesPresentationContext = true
searchTableView.tableHeaderView = searchController.searchBar
【问题讨论】:
-
看看这个链接.. 特别是在最后一个答案stackoverflow.com/questions/31702413/…
-
感谢您发布此信息。虽然这很适合将 UISearchBar 保持在同一位置,但它仍然会显示动画并隐藏在我的视图中。
-
您是否在故事板中添加搜索栏?如果是,那么请在您的代码中创建一个搜索栏,然后将其添加到 tableview 标题中。
-
我不是。一切都以编程方式完成。我已经编辑了上面的问题
-
@daspianist 值得您尝试使用
UIViewController,然后在顶部有您的标题视图(带有选项卡选择的那个),然后是您的UISearchBar,最后,有一个嵌入UITableViewController的容器视图。如果你这样做,我可以保证它不会移动。虽然不确定它有多优雅。 (我的项目中有完全相同类型的 UI)
标签: ios swift uitableview uisearchbar uisearchcontroller