1

从 iOS 11(及更高版本)开始,我尝试合并大标题(带有UISearchController)。我的一个屏幕在层次结构上没有UITableView第一个孩子(而是UIPageViewController,这导致导航栏没有折叠,因为scrollView它不是第一个孩子..但由于结构设计不能..无论如何这不是问题)。

当按下另一个屏幕(并且该屏幕已设置为navigationItem)时,过渡动画看起来很奇怪(从中心关闭并且与导航栏动画不同步)。largeTitleDisplayModeneverUISearchBar

注意:如果推送的控制器已largeTitleDisplayMode设置为.automatic(或always),则转换正常。

背景

prefersLargeTitle启用时,设置navigationItem'ssearchController并且层次结构上的第一个视图不是 tableView (或者我猜是 scrollView 后代),navigationBar 显示 searchBar 打开。

尝试过的选项

我尝试修改and的translucent属性。还要设置 UINavigationBar 的.UINavigationBarUISearchBarclipToBounds

代码

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        navigationController?.navigationBar.prefersLargeTitles = true
        self.navigationItem.largeTitleDisplayMode = .always
        navigationItem.searchController = UISearchController(searchResultsController: nil)
    }

}
class SecondViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        navigationItem.largeTitleDisplayMode = .never
    }

}

在此处输入图像描述

4

0 回答 0