我正在尝试制作可滚动的视图。该viewcontroller还包含navbar。现在我的目标是在视图中的标题触及导航栏时调整视图大小。我该怎么办?
这就是我的视图的样子(请注意,navBar只是透明的):
标题碰撞后我想要的是什么:
我知道我可以在scrollViewDidScroll
委托功能中实现它,但是如何实现呢?
答案 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)
}
}