检测标签是否触及导航栏

时间:2017-10-05 13:18:29

标签: swift

我正在尝试制作可滚动的视图。该viewcontroller还包含navbar。现在我的目标是在视图中的标题触及导航栏时调整视图大小。我该怎么办?

这就是我的视图的样子(请注意,navBar只是透明的):

enter image description here

标题碰撞后我想要的是什么:

enter image description here

我知道我可以在scrollViewDidScroll委托功能中实现它,但是如何实现呢?

1 个答案:

答案 0 :(得分:1)

您可以使用convertRect:method as

跟踪标签位置
 func scrollViewDidScroll(_ scrollView: UIScrollView) {
        let labelTop = label.rectCorrespondingToWindow.minY
        let navBottom =  self.navigationController?.navigationBar.rectCorrespondingToWindow.maxY
        if navBottom == labelTop {
            // do what you want to do
        }
    }

extension UIView{
    var rectCorrespondingToWindow:CGRect{
        return self.convert(self.bounds, to: nil)
    }
}