[英]Cancel Button in UISearchController Causes SearchBar Glitch
在viewDidload
,我将实例化UISearchController
并将其搜索栏添加到表视图的标题视图中,这是标准过程。
如果我点击搜索栏并输入一些文本,则会显示结果,并且我在此处取消搜索,没问题。
相反,如果我选择结果行之一,则推入下一个屏幕,然后弹出并在此处取消,则搜索栏会出现故障。
这是我的searchController:
// MARK : SearchController ! //
var searchController : UISearchController!
var resultsController = UITableViewController()
///////////
override func viewDidLoad() {
super.viewDidLoad()
definesPresentationContext = true
self.resultsController.tableView.dataSource = self
self.resultsController.tableView.delegate = self
self.searchController = UISearchController(searchResultsController: self.resultsController)
self.tableView.tableHeaderView = self.searchController.searchBar
self.searchController.searchResultsUpdater = self
self.searchController.dimsBackgroundDuringPresentation = true
self.searchController.searchBar.sizeToFit()
self.searchController.searchBar.barTintColor = UIColor.blackColor()
self.searchController.searchBar.endEditing(true)
self.searchController.searchBar.placeholder = "חפש ברים"
self.searchController.hidesNavigationBarDuringPresentation = false
self.searchController.searchBar.delegate = self
}
就像搜索栏不再是tableHeaderView
一样,它破坏了tableview
将最后一个单元格和第一个单元格减半。
先感谢您!
经过大量的设置后,我设法自己找到了解决方案,我不知道为什么这些特定的设置可以解决此问题,但是以下是为我解决了该问题的原因:
override func viewDidLoad() {
super.viewDidLoad()
//MARK : Fixes SearchBar Bugs
self.resultsController.edgesForExtendedLayout = .All
self.searchController.edgesForExtendedLayout = .All
self.resultsController.extendedLayoutIncludesOpaqueBars = true
// End of Bug Fixes.
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.