gpt4 book ai didi

ios - TableView header 中的 UISearchController 与其他项目重叠

转载 作者:行者123 更新时间:2023-11-30 10:57:40 25 4
gpt4 key购买 nike

即使我为顶部标签和按钮设置了正确的约束,因此 TableView 不会重叠,但在展开 SearchBar 时,它仍然会重叠在屏幕的顶部和右侧。

UISearchControllerSearchBar 添加为 TableView 的标题。

Image showing the problem

生成 UISearchController 和 TableView 的代码

//Create our search controller
self._searchController = UISearchController(searchResultsController: nil)
self._searchController?.searchResultsUpdater = self
self._searchController?.obscuresBackgroundDuringPresentation = false
self._searchController?.searchBar.placeholder = "Search for products or activities"
self._searchController?.searchBar.sizeToFit()
self._searchController?.searchBar.searchBarStyle = .minimal
self._searchController?.searchBar.tintColor = UIColor.colorPrimary()
self._searchController?.searchBar.barTintColor = #colorLiteral(red: 0.921431005, green: 0.9214526415, blue: 0.9214410186, alpha: 1)
self._searchController?.searchBar.scopeButtonTitles = ["Products", "Activities"]
self._searchController?.searchBar.selectedScopeButtonIndex = 0
self._searchController?.searchBar.delegate = self
self.definesPresentationContext = true

//Prepare our tableView
self._tableView.rowHeight = UITableView.automaticDimension
self._tableView.separatorStyle = .none
self._tableView.showsVerticalScrollIndicator = false
self._tableView.delegate = self
self._tableView.dataSource = self
self._tableView.register(ProductViewCell.nib, forCellReuseIdentifier: ProductViewCell.identifier)
self._tableView.register(ActivityViewCell.nib, forCellReuseIdentifier: ActivityViewCell.identifier)
self._tableView.tableHeaderView = self._searchController?.searchBar

SearchBar 处于事件状态时,我尝试使用以下内容隐藏顶部的内容

func searchBarTextDidBeginEditing(_ searchBar: UISearchBar) {
//self._titleLabel.fadeOut(0.0)
//self._barCodeButton.fadeOut(0.0)
}

func searchBarTextDidEndEditing(_ searchBar: UISearchBar) {
//self._titleLabel.fadeIn(1.0)
//self._barCodeButton.fadeIn(1.0)
}

但是如果我想在滚动表格时使 SearchBar 散焦

func scrollViewWillBeginDragging(_ scrollView: UIScrollView) {
self._searchController?.searchBar.resignFirstResponder()
}

搜索栏将保留,项目将淡入,并且全部再次重叠。

最佳答案

iOS11+ 上 UISearchController 的默认选项是在搜索时隐藏导航栏并向上移动搜索栏(带动画)。

我认为对于你的情况,你只需要关闭它:

searchController.hidesNavigationBarDuringPresentation = false

关于ios - TableView header 中的 UISearchController 与其他项目重叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53761827/

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