ios - 如何添加约束以编程方式将两个 View 附加在一起?

标签 ios swift autolayout

我试图让我的 UISearchbar 和它下面的 UITableView 相互粘附。我已经尝试过 self.tableview.origin.y = self.searchbar.origin.y + self.searchbar.frame.height 之类的但没有成功。在不同的设备模拟器中运行时,tableview 只是附加在不同的 y 位置。我需要以编程方式完成此操作,因为我已经以这种方式创建了 TableView 。

image 图片链接: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()
}

编辑:结果 recentSearchesTableView.frame.origin.y = searchBar.frame.origin.y + searchBar.frame.height 适用于 iPhone X 以下的所有设备,但搜索栏和表格 View 重叠iPhone X 及以上 :/

最佳答案

向 TableView 添加搜索栏的最佳方法是使用 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/

相关文章:

android - Flutter Android 在没有 onPress 的情况下以编程方式关闭/关闭 ProgressHUD 对话框

ios - 如何在swift中调用这个函数

SwiftUI 条件 View 不会动画/过渡

View 出现后应用 iOS 8/XCode 6 自动布局约束

ios - 为什么 View 的边距必须为 -20 才能使其接近屏幕末尾,为什么不为零?

ios - 限制服务器只响应 iOS 应用程序发出的 HTTP 请求 - 没有用户名和密码

ios - 创建自定义垂直 UISlider

javascript - iOS HTML 相机预览输入文档

ios - fetchedResultsController 不更新过滤器

ios - UIButton 在使用自动布局时在 iPhone6 模拟器中拉伸(stretch)