如何在iOS 11中关闭UITableView调整大型游戏?

iOS 11中有这么大的标题function,当UITableViewController的表格滚动到顶部时会显示大标题,当用户将表格从顶部滚动时会折叠成标准的小标题。 这是标准行为。 我需要导航控制器的行为有点不同 – 我需要始终显示大标题。 怎么做到这一点?

以下代码没有帮助,滚动时它仍然会崩溃。

 navigationController?.navigationBar.prefersLargeTitles = true navigationItem.largeTitleDisplayMode = .always 

我在UIViewController嵌入UITableViewController时无意中实现了它。

我不确定这是Apple的错误还是预期的行为。

所以堆栈就像UINavigationController一样简单 – > UIViewController (用作容器) – > UITableViewController

以下是具有嵌入式UITableViewController全屏的视图控制器示例

 class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource { var vc = UITableViewController(style: .plain) var array: [String] = [] override func viewDidLoad() { super.viewDidLoad() vc.view.translatesAutoresizingMaskIntoConstraints = false view.addSubview(vc.view) view.addConstraint(view.leadingAnchor.constraint(equalTo: vc.view.leadingAnchor)) view.addConstraint(view.rightAnchor.constraint(equalTo: vc.view.rightAnchor)) view.addConstraint(view.safeAreaLayoutGuide.topAnchor.constraint(equalTo: vc.view.topAnchor)) view.addConstraint(view.bottomAnchor.constraint(equalTo: vc.view.bottomAnchor)) vc.tableView.delegate = self vc.tableView.dataSource = self array = "0123456789".characters.map(String.init) vc.tableView.register(UITableViewCell.self, forCellReuseIdentifier: "identifier") title = "Title" } func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return array.count } func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCell(withIdentifier: "identifier", for: indexPath) cell.textLabel?.text = array[indexPath.row] return cell } } 

这是结果

在此处输入图像描述

希望能帮助到你。

PS令人惊讶的是,我目前的问题是我不知道如何通过这样的架构获得崩溃行为:)