我将UISearchController
与UISearchBar
一起使用。
我想使用自动版式将UISearchBar
放在UIViewController
的视图顶部:
import UIKit
class ViewController: UIViewController {
var searchController = UISearchController(searchResultsController: nil)
let myCustomSearchBar = UISearchBar()
var searchBar: UISearchBar {
// return searchController.searchBar
return myCustomSearchBar
}
override func viewDidLoad() {
super.viewDidLoad()
searchController.dimsBackgroundDuringPresentation = false
searchController.obscuresBackgroundDuringPresentation = false
searchController.hidesNavigationBarDuringPresentation = false
view.addSubview(searchBar)
configureSearchBarLayout()
searchBar.translatesAutoresizingMaskIntoConstraints = false
}
private func configureSearchBarLayout() {
[
searchBar.leadingAnchor.constraint(equalTo: view.leadingAnchor),
searchBar.topAnchor.constraint(equalTo: view.layoutMarginsGuide.topAnchor),
searchBar.trailingAnchor.constraint(equalTo: view.trailingAnchor),
searchBar.heightAnchor.constraint(equalToConstant: 88)
]
.forEach{
$0.isActive = true
}
}
}
这将显示以下视图:
但是,一旦我点击searhBar,它就会完全移出屏幕,再也不会出现。
如果我修改代码以包含基本的UISearchBar
,而不是UISearchController
创建的代码,则可以正常工作:
当我尝试使用AutoLayout将其UISearchController
的SearchBar固定到顶部以及如何解决该问题时,为什么它无法正确工作?