iOS 11 中有一个大标题功能,当 UITableViewController
的表格滚动到顶部时会显示大标题,当用户从顶部滚动表格时会折叠成标准的小标题。这是标准行为。我需要导航 Controller 的行为有点不同 - 我需要始终显示大标题。如何做到这一点?
以下代码无济于事,滚动时仍会崩溃。
navigationController?.navigationBar.prefersLargeTitles = true
navigationItem.largeTitleDisplayMode = .always
我在 UIViewController
中嵌入 UITableViewController
时无意中实现了它。
我不确定这是 Apple 的错误还是预期的行为。
所以栈就像UINavigationController
-> UIViewController
(用作容器) -> UITableViewController
这里是 sample 嵌入式 UITableViewController
全屏 View Controller
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
}
}
这是结果
希望对你有帮助。
P.S.令人惊讶的是,我目前的问题是我不知道如何使用这种架构获得折叠行为
关于ios - 如何在 iOS 11 中关闭通过 UITableView 调整大标题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46506401/
欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://ogeek.cn/) | Powered by Discuz! X3.4 |