检测标签何时出现在SWIFT的屏幕上

时间:2014-12-27 18:09:21

标签: ios swift uiview

我有一个包含多个元素的滚动视图(textview,label,image view ...),当我滚动时,当我的标签出现在屏幕上时,我需要显示一个uiview。

我该怎么办?

1 个答案:

答案 0 :(得分:1)

确保您的视图控制器是滚动视图委托。实现scrollViewDidScroll方法,并检查由contentOffset偏移的滚动视图框架是否与标签框架重叠。

func scrollViewDidScroll(scrollView: UIScrollView) {
    let offset = self.scrollView.contentOffset
    let onScreen = CGRectOffset(self.scrollView.frame, offset.x, offset.y)
    if CGRectIntersectsRect(onScreen, self.label.frame) {
        NSLog("Overlap")
    }
}

如果您想要检测标签何时完全在屏幕上,请使用CGRectContainsRect代替CGRectIntersectsRect