【问题标题】:Detect when label appears on screen in SWIFT检测标签何时出现在 SWIFT 的屏幕上
【发布时间】:2014-12-27 18:09:20
【问题描述】:

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

我该怎么办?

【问题讨论】:

    标签: ios swift uiview


    【解决方案1】:

    确保您的视图控制器是滚动视图委托。实现scrollViewDidScroll方法,检查scroll view的frame,偏移了contentOffset,是否和label的frame重叠。

    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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-08
      • 2018-10-21
      • 1970-01-01
      • 2020-10-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多