【发布时间】:2018-05-31 23:18:00
【问题描述】:
我使用以下代码在我的应用中实现了大标题:
if #available(iOS 11.0, *) {
navigationController?.navigationBar.prefersLargeTitles = true
navigationItem.largeTitleDisplayMode = .always
} else {
// Fallback on earlier versions
}
}
func scrollViewDidScroll(_ scrollView: UIScrollView) {
if scrollView.contentOffset.y <= 0 {
if #available(iOS 11.0, *) {
self.navigationItem.largeTitleDisplayMode = .always
} else {
// Fallback on earlier versions
}
} else {
if #available(iOS 11.0, *) {
self.navigationItem.largeTitleDisplayMode = .never
} else {
// Fallback on earlier versions
}
}
self.navigationController?.navigationBar.setNeedsLayout()
self.view.setNeedsLayout()
UIView.animate(withDuration: 0.01, animations: {
self.navigationController?.navigationBar.layoutIfNeeded()
self.view.layoutIfNeeded()
})
}
我能够在标签栏上的视图之间成功切换,但是当我将视图推送到标签栏控制器的顶部,然后使用以下代码将其弹出时:
_ = self.navigationController?.popViewController(animated: true)
当我再次在标签栏上的视图之间切换时,我遇到了这个崩溃: 由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“错误:UIScrollView 不支持多个观察者实现 _scrollViewWillEndDraggingWithVelocity:targetContentOffset:”
【问题讨论】:
-
我遇到了同样的问题 :(
-
当我转到另一个视图时,tableview 仍在滚动时出现问题。我通过在 scrollViewDidScroll 中设置一个 bool 来解决这个问题,它在 segue 启动时禁用任何滚动。
标签: swift uiscrollview crash navigationbar tabbar