我有一个包含多个元素(标签,按钮...)的滚动视图,滚动时在屏幕上出现按钮时需要显示图像。
我可以检测到按钮何时出现在屏幕上,如下所示:
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) {
...
}
}
但是我想让所有按钮(也许在带有标签的数组中)滚动后出现在屏幕上。
我怎样才能做到这一点?
最佳答案
如果所有按钮都在一个数组中,则使用NSSet,对于滚动按钮,请使用NSMutableSet。
因此,在滚动之前,请执行以下操作:
NSMutableSet *scrolledButtons = [[NSMutableSet alloc] init];
随着它们的滚动,添加它们:
[scrolledButtons addObject:aButton];
然后,完成后,只需进行检查:
NSSet *allMyButtons = [NSSet setWithArray:self.myArrayOfButtons];
if ([allMyButtons equalToSet:scrolledButtons]) {
// whatever
}
并为在Obj-C中执行此操作而道歉...我的Swift尚无法完全解决,我正在迅速进行。
关于ios - 在屏幕上检测物体,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40033145/