Seb*_*ien 5 uitableview ios swift uisearchcontroller
我正在尝试将UISearchController添加到包含UITableView(以及MKMapView的UIViewController)中,但希望这不是问题。我遵循了Ray Wenderlich的教程,但是就行为而言,我无法获得相同的结果。
这是我的viewDidLoad:
override func viewDidLoad() {
super.viewDidLoad()
// Setup the Search Controller
searchController.searchResultsUpdater = self
searchController.obscuresBackgroundDuringPresentation = false
searchController.searchBar.placeholder = NSLocalizedString("Search references by project, customer or city", comment: "")
if #available(iOS 11.0, *) {
navigationItem.searchController = searchController
navigationItem.hidesSearchBarWhenScrolling = true
} else {
tableView.tableHeaderView = searchController.searchBar
}
definesPresentationContext = true
self.modeSelector.layer.cornerRadius = 5.0
if let split = splitViewController {
let controllers = split.viewControllers
detailViewController = (controllers[controllers.count - 1] as! UINavigationController).topViewController as? ReferenceViewController
}
self.navigationItem.rightBarButtonItem?.isEnabled = false
}
Run Code Online (Sandbox Code Playgroud)
请注意,中间的#available测试是因为我需要支持9.1之前的iOS。
现在我看到几个问题:
我在Ray Wenderlich的示例项目中看到的唯一主要区别是,由于我使用Xcode 9创建了项目,因此故事板不使用顶部和底部布局指南,而是使用安全区域。不知道它是否相关,但这是我唯一看到的。
知道发生了什么事以及如何解决这个问题吗?
如果您需要支持高达 9.1 的 iOS,您可能使用版本低于 9.1 的模拟器。因此,“也许”obscuresBackgroundDuringPresentation
不会searchController
正确影响,因为它仅适用于 iOS 9.1 或更新版本。添加dimsBackgroundDuringPresentation
支持高达 9.1:
if #available(iOS 9.1, *) {
searchController?.obscuresBackgroundDuringPresentation = false
} else {
searchController?.dimsBackgroundDuringPresentation = false
}
Run Code Online (Sandbox Code Playgroud)
如果这无助于按预期显示,我几乎可以肯定问题出在您的布局约束上。如果您无法使您的布局符合安全区域,请添加您当前的约束。
归档时间: |
|
查看次数: |
2027 次 |
最近记录: |