当父UIView被动画时,无法检测到UIView儿童正确接触

时间:2013-09-26 14:42:03

标签: ios objective-c uiview

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

1 个答案:

答案 0 :(得分:0)

有一个UIViewAnimationOptions值......

UIViewAnimationOptionAllowUserInteraction

您可以在[UIView animateWithDuration...代码中使用此功能。

这将启用触控功能。