我试着让我的UISearchbar和它下面的UITableView互相粘在一起。我试过类似的方法,但没有成功。在不同的设备模拟器中运行时,tableview只是在不同的y位置被附加。我需要以编程方式完成这项工作,因为我已经这样创建了表视图。
图像链接:https://ibb.co/T8jHLtz
func viewDidLoad(){
recentSearchesTableView.frame = CGRect(x: 0, y: 200, width: view.frame.width, height: view.frame.height)
recentSearchesTableView.delegate = self
recentSearchesTableView.dataSource = self
recentSearchesTableView.register(UITableViewCell.self, forCellReuseIdentifier: "RecentSearchCell")
recentSearchesTableView.tag = 202
recentSearchesTableView.isUserInteractionEnabled = true
recentSearchesTableView.tableFooterView = UIView()
}
编辑:结果显示
self.tableview.origin.y = self.searchbar.origin.y + self.searchbar.frame.height
对于iPhone X及以上版本的所有设备都非常适用,但搜索栏和tableview与iphonex及以上版本重叠:/ 最佳答案
将搜索栏添加到表视图的最佳方法是使用UISearchController
。
override func viewDidLoad() {
super.viewDidLoad()
// You may need this for presenting the search controller
definesPresentationContext = true
searchController = UISearchController(searchResultsController: nil)
searchController.obscuresBackgroundDuringPresentation = false
searchController.searchResultsUpdater = self
searchController.delegate = self
if #available(iOS 11.0, *) {
navigationItem.searchController = searchController
// navigationItem.hidesSearchBarWhenScrolling = false
} else {
tableView.tableHeaderView = searchController.searchBar
}
}
这将使管理搜索结果的逻辑和显示更加容易。
关于ios - 如何添加约束以编程方式将两个 View 连接在一起?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54139462/