我正在开发一个 iOS 应用程序。
我有一个正在动画的 UIView。它不断地从左向右移动。
这个视图有几个 UIView 孩子。当它被动画化时,它们会在父级内部移动。
当我尝试捕捉用户对孩子的触摸时(通过使用 UITapGestureRecognizer),它没有按预期工作。它可以检测到对孩子的一些触摸,但不是在他们当前所在的位置。
我已经为此苦苦挣扎了一段时间。关于如何解决这个问题的任何想法?我真的需要检测用户正在触摸哪些孩子。
谢谢!
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
UITouch *touch = [touches anyObject];
CGPoint touchLocation = [touch locationInView:self];
// Check every child subview
for (UIView *tickerItem in self.subviews)
{
// Check collision
if ([tickerItem.layer.presentationLayer hitTest:touchLocation])
{
MKTickerItemView *v = (MKTickerItemView*)tickerItem;
NSLog(@"Selected: %@", v.title);
// This button was hit whilst moving - do something with it here
break;
}
}
}