导航栏大标题过渡代表

时间:2019-05-24 07:56:49

标签: ios uinavigationbar large-title preferslargetitles

我已在导航栏中启用了Large Title自动Display Mode,以便在用户滚动时缩小。这种转换发生时是否有办法得到通知?我没有为此找到任何委托方法。我有一个带有长标签的Right Bar Button Item,当大标题缩小时我想隐藏它,以使标题居中。

1 个答案:

答案 0 :(得分:0)

很显然,没有任何代表或任何其他官方方式可知。所以我的解决方法是使用ScrollViewDelegate

extension ViewController: UIScrollViewDelegate {
    func scrollViewDidScroll(_ scrollView: UIScrollView) {
        if let height = navigationController?.navigationBar.frame.size.height, height == 44 {
            // handle small title
        }
        else {
            // handle large title
        }
    }
}

这在iPad上不起作用,因为导航栏的高度不同,但这是我的目的。

还要记住,scrollViewDidScroll在单个小滚动中被调用XX次,因此在进行任何更新之前,请检查它们是否尚未完成。