gpt4 book ai didi

ios - 如何将 Storyboard UISearchBar 连接到以编程方式创建的 UISearchController?

转载 作者:IT王子 更新时间:2023-10-29 05:44:46 24 4
gpt4 key购买 nike

我之前在 UITableView 的 header View 中有一个 searchController.searchBar,但我想添加按钮来更改显示的数组。现在我已经在我的 Storyboard中添加了一个 UISearchBar,我想弄清楚如何将它连接到我的 UISearchController 以便我可以正确地更新结果。然而,即使在最新的 XCode 中,我们在 IB 中仍然有 UIDisplayController

我认为有两种方法可以解决这个问题,要么有一种方法可以连接它们但我不知道,要么我只是使用 searchController 的原生 searchBar 并将其框架移动到我想要的位置。由于 AutoLayout 在调整大小方面的优势,我对尝试后者犹豫不决。

最佳答案

我总是在 44 磅高的界面生成器文件中放置一个占位符 View 。然后,您可以将 SearchController.view 添加为该容器 View 的 subview 。

    @IBOutlet weak var searchContainerView: UIView!

fileprivate lazy var searchController: UISearchController = {
let contactSearchViewController = self.storyboard?.instantiateViewController(withIdentifier: String(describing: ContactSearchViewController.self)) as! ContactSearchViewController
contactSearchViewController.delegate = self
contactSearchViewController.datasource = self
let searchController = UISearchController(searchResultsController: contactSearchViewController)
searchController.searchResultsUpdater = contactSearchViewController
searchController.dimsBackgroundDuringPresentation = false
searchController.definesPresentationContext = true
return searchController
}()

override func viewDidLoad() {
super.viewDidLoad()
searchContainerView.addSubview(searchController.searchBar)
let attributes: [NSLayoutAttribute] = [.top, .bottom, . left, .right]
NSLayoutConstraint.activate(attributes.map{NSLayoutConstraint(item: self.searchController.searchBar, attribute: $0, relatedBy: .equal, toItem: self.searchContainerView, attribute: $0, multiplier: 1, constant: 0)})
}

关于ios - 如何将 Storyboard UISearchBar 连接到以编程方式创建的 UISearchController?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37600753/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com