我有一个包含多个元素的滚动视图(标签,按钮......),当我滚动时,当屏幕上出现按钮时,我需要显示图像。
我可以检测到屏幕上出现按钮的时间如下:
func scrollViewDidScroll(scrollView: UIScrollView) {
let offset = self.scrollView.contentOffset
let onScreen = CGRectOffset(self.scrollView.frame, offset.x, offset.y)
if CGRectIntersectsRect(onScreen, self.button.frame) {
...
}
}
但是我希望滚动后出现在屏幕上的所有按钮(可能带有标签的数组)。
我该怎么做?
答案 0 :(得分:0)
如果所有按钮都在数组中,则使用NSSet,滚动按钮使用NSMutableSet。
因此,在滚动之前,请执行以下操作:
NSMutableSet *scrolledButtons = [[NSMutableSet alloc] init];
当他们滚动时,添加它们:
[scrolledButtons addObject:aButton];
完成后,只需检查一下:
NSSet *allMyButtons = [NSSet setWithArray:self.myArrayOfButtons];
if ([allMyButtons equalToSet:scrolledButtons]) {
// whatever
}
对于在Obj-C中做到这一点道歉...我的Swift不太适合鼻烟,而且我很快就这样做了。