0

我正在开发一个 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;
        }
    }
}
4

1 回答 1

0

There is a UIViewAnimationOptions value...

UIViewAnimationOptionAllowUserInteraction

You can use this in the [UIView animateWithDuration... code.

This will enable the touch.

于 2013-09-26T14:44:35.477 回答