Joh*_*een 31 cocoa-touch uikit uinavigationcontroller ios swift
我实现了一个带有UITableView的基本UIViewController,它包含在UINavigationController中.我设置prefersLargeTitles为true:
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
navigationController?.navigationBar.prefersLargeTitles = true
navigationItem.title = "Coffees"
}
Run Code Online (Sandbox Code Playgroud)
但是,标题保持很小,直到我滚动视图,此时它会放大.我尝试将该调用移动到我创建UINavigationController的位置,但没有效果.我确定我设置时navigationController不是nil prefersLargeTitles.
我应该在其他地方更新该房产吗?或者我应该提交雷达?
更新:
如果我的视图包含一个UITableView或本身就是一个,这似乎只会发生UITableViewController
Trz*_*cje 41
对我来说,唯一可行的解决方案是:
DispatchQueue.main.async { [weak self] in
self?.navigationController?.navigationBar.sizeToFit()
}
Run Code Online (Sandbox Code Playgroud)
在
viewWillAppear()
Run Code Online (Sandbox Code Playgroud)
Pac*_*ong 20
我有同样的问题.虽然你没有使用故事板,但我希望这可以帮助某人.我检查了导航控制器(不是视图控制器)的"首选大标题"我嵌入了我的TableViewController.导航控制器转动后所有的视图控制器都有大标题,它应该可以工作.
小智 13
我只在一个tableview上遇到同样的问题......
我必须设置:
self.tableView.contentInsetAdjustmentBehavior = .never
Run Code Online (Sandbox Code Playgroud)
这样我的tableview在加载uiviewcontroller时停止滚动.
这是tableview自动滚动,可以隐藏大标题
希望这可以帮助
tit*_*nus 11
我最近遇到了同样的问题,没有任何建议对我有用。相反,我要做的就是调用sizeToFit()。样例代码:
private func configureNavigator() {
guard let navigationController = navigationController else { return }
navigationController.navigationBar.prefersLargeTitles = true
navigationItem.largeTitleDisplayMode = .automatic
navigationController.navigationBar.sizeToFit()
}
Run Code Online (Sandbox Code Playgroud)
我希望这有帮助!
小智 7
Swift 5.2 也有同样的问题
我的视图包含 tableView 且 PreferredLargeTitles 在滚动之前不会更新,我通过设置修复了它
self.tableView.contentInsetAdjustmentBehavior = .never
Run Code Online (Sandbox Code Playgroud)
修改 tableView 的 contentInsettop:1将强制 NavigationBar 展开并显示大标题。
对象-C
-(void) viewWillAppear:(BOOL)animated {
if (@available(iOS 11.0, *)) {
tableView.contentInset = UIEdgeInsetsMake(1, 0, 0, 0);
}
}
Run Code Online (Sandbox Code Playgroud)
迅速
override func viewWillAppear(_ animated: Bool) {
if #available(iOS 11.0, *) {
tableView.contentInset = UIEdgeInsetsMake(1, 0, 0, 0)
}
}
Run Code Online (Sandbox Code Playgroud)
注意:如果你有一个tableView.reloadData(),请viewWillAppear确保在编辑后调用它contentInset
| 归档时间: |
|
| 查看次数: |
15295 次 |
| 最近记录: |