菜鸟教程小白 发表于 2022-12-12 13:46:35

ios - 如何在 iOS 11 中关闭通过 UITableView 调整大标题?


                                            <p><p>iOS 11 中有一个大标题功能,当 <code>UITableViewController</code> 的表格滚动到顶部时会显示大标题,当用户从顶部滚动表格时会折叠成标准的小标题。这是标准行为。我需要导航 Controller 的行为有点不同 - 我需要始终显示大标题。如何做到这一点?</p>

<p>以下代码无济于事,滚动时仍会崩溃。</p>

<pre><code>navigationController?.navigationBar.prefersLargeTitles = true
navigationItem.largeTitleDisplayMode = .always
</code></pre></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>我在 <code>UIViewController</code> 中嵌入 <code>UITableViewController</code> 时无意中实现了它。 </p>

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

<p>所以栈就像<code>UINavigationController</code> -> <code>UIViewController</code>(用作容器) -> <code>UITableViewController</code></p>一样简单

<p>这里是 <strong>sample</strong> 嵌入式 <code>UITableViewController</code> 全屏 ViewController </p>

<pre><code>class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {

    var vc = UITableViewController(style: .plain)
    var array: = []

    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 = &#34;0123456789&#34;.characters.map(String.init)
      vc.tableView.register(UITableViewCell.self, forCellReuseIdentifier: &#34;identifier&#34;)

      title = &#34;Title&#34;
    }

    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -&gt; Int {
      return array.count
    }
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -&gt; UITableViewCell {
      let cell = tableView.dequeueReusableCell(withIdentifier: &#34;identifier&#34;, for: indexPath)
      cell.textLabel?.text = array
      return cell
    }
}
</code></pre>

<p><em>这是<strong>结果</strong></em></p>

<p> <a href="/image/viRRd.gif" rel="noreferrer noopener nofollow"><img src="/image/viRRd.gif" alt="enter image description here"/></a> </p>

<p>希望对你有帮助。</p>

<p><strong>P.S.</strong>令人惊讶的是,我目前的问题是我不知道如何使用这种架构获得折叠行为:)</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 如何在 iOS 11 中关闭通过 UITableView 调整大标题?,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/46506401/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/46506401/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 如何在 iOS 11 中关闭通过 UITableView 调整大标题?