问题描述
我有一个 UISearchController 配置为导航栏的 searchController。我有以下设置。
let searchController = UISearchController(searchResultsController: nil)
searchController.hidesNavigationBarDuringPresentation = true
searchController.dimsBackgroundDuringPresentation = false
searchController.searchBar.placeholder = LocalisedStrings.searchChannels
searchController.searchBar.searchBarStyle = .minimal
searchController.searchBar.delegate = self
navigationItem.hidesSearchBarWhenScrolling = false
navigationItem.searchController = searchController
我有一个 UITableView 作为 ViewController 视图的子视图,如下所示:
func setupView() {
extendedLayoutIncludesOpaqueBars = true
view.backgroundColor = secondarySurfaceColor
view.addSubview(channelsTV)
view.addSubview(emptyView)
NSLayoutConstraint.activate([
channelsTV.leadingAnchor.constraint(equalTo: view.leadingAnchor),channelsTV.topAnchor.constraint(equalTo: view.topAnchor),channelsTV.trailingAnchor.constraint(equalTo: view.trailingAnchor),channelsTV.bottomAnchor.constraint(equalTo: view.bottomAnchor),emptyView.centerXAnchor.constraint(equalTo: view.centerXAnchor),emptyViewCenterYAnchorConstraint,])
}
我面临以下问题,即在搜索控制器下可见的 UITableView 项的小滚动问题,并且在正常向上/向下滚动吊索期间是正常的。
期望的行为是 tableView 单元格不应与搜索栏和导航栏重叠。但是当tableView滚动时,导航栏应该从大标题折叠到小标题。有什么办法吗?非常感谢在此方面的帮助。如果您需要更多详细信息,请发表评论。
解决方法
试试这个技巧:
view.addSubview(UIView()) // To prevent the large tile nav bar from collapsing
我忽略了原因,但这会破坏 UIScrollView 和导航栏之间的链接...这可能会解决您的问题。