检测标签何时出现在 SWIFT 的屏幕上
Posted
技术标签:
【中文标题】检测标签何时出现在 SWIFT 的屏幕上【英文标题】:Detect when label appears on screen in SWIFT 【发布时间】:2014-12-27 18:09:20 【问题描述】:我有一个包含多个元素(文本视图、标签、图像视图...)的滚动视图,当我滚动时我的标签出现在屏幕上时,我需要显示一个 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
。
【讨论】:
以上是关于检测标签何时出现在 SWIFT 的屏幕上的主要内容,如果未能解决你的问题,请参考以下文章