更改 UITableView 中的搜索栏高度(swift 5)

Posted

技术标签:

【中文标题】更改 UITableView 中的搜索栏高度(swift 5)【英文标题】:Change search bar height in UITableView (swift 5) 【发布时间】:2020-08-04 10:27:47 【问题描述】:

我是按照这个example 在表格视图中实现搜索的。但是我没有使用Navigation Controller,所以直接在TableViewHeaderView中添加了Search Bar。搜索工作正常,但我需要更改搜索栏的高度。 我尝试向文本字段添加约束,它改变了栏的高度,但在搜索栏后卡在 tableView 上。

enter image description here

【问题讨论】:

【参考方案1】:

我所做的解决方案:在搜索栏中设置 TextField 的约束。禁用“取消”按钮外观(否则它将与搜索栏重叠)。

 func configureSearch() 
    
    searchController.searchResultsUpdater = self
    searchController.obscuresBackgroundDuringPresentation = false
    definesPresentationContext = false        
    searchController.searchBar.searchBarStyle = .minimal
    searchController.searchBar.placeholder = "Search station"
    searchController.searchBar.showsCancelButton = false
    
    if let searchField = searchController.searchBar.value(forKey: "searchField") as? UITextField 
        
        searchField.snp.makeConstraints  (make) in
            make.height.equalTo(55)
            make.leading.equalToSuperview().offset(20)
            make.trailing.equalToSuperview().offset(-20)
        
                    
        searchField.textColor = .white
        searchField.backgroundColor = .black
        searchField.font = UIFont(name: "SFUIText-Regular", size: 14)
    
    tableView.tableHeaderView  = searchController.searchBar
    

要禁用 searchController(通常是取消按钮执行此工作),我添加了 tapGesture:

 let searchTap = UITapGestureRecognizer(target: self, action: #selector(handleTap(_:)))
    self.view.addGestureRecognizer(searchTap)

@objc func handleTap(_ sender: UITapGestureRecognizer)        
    searchController.isActive = false

【讨论】:

以上是关于更改 UITableView 中的搜索栏高度(swift 5)的主要内容,如果未能解决你的问题,请参考以下文章

在 UITableView 中显示搜索结果

UITableView 中的搜索栏

如何在 UITableView 中添加搜索栏,就像 iOS 中的游戏中心一样?

如何在没有重载数据的情况下更改uitableview中的高度单元格

领域对象的 UITableView 中的搜索栏

UITableView 中的搜索栏不显示单元格标签中的文本