UIViewAnimationOptionAllowUserInteraction不工作

时间:2012-03-01 20:58:32

标签: ios uiviewanimation

我正试图在UIImageView动画时检测到触摸。 触摸检测在动画开始之前和之后都有效 停止,但不是在。

我尝试添加UIViewAnimationOptionAllowUserInteraction,但它 似乎根本没有效果!

有人能指出我正确的方向吗?

代码:

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {

    UITouch *touch = [touches anyObject];
    NSLog(@"tag=%@", [NSString stringWithFormat:@"%i", touch]);
    if ([touch view] == itemCoke)
    {
        NSLog(@"Coke Touched");
    }

}

- (IBAction)removeItemButton:(id)sender {
    NSLog(@"Pushed");


    [UIView animateWithDuration:5 
                          delay:0.0         
                        options:UIViewAnimationOptionAllowUserInteraction
                     animations:^
                             {
                                 itemCoke.transform = CGAffineTransformRotate(itemCoke.transform, (M_PI*-0.5));
                                 itemCoke.frame = CGRectMake(50, 50, 50, 50);
                             }
                     completion:^(BOOL finished){}];   
}

感谢您的任何建议!

2 个答案:

答案 0 :(得分:8)

互动不起作用的原因是UIImageView基本上不是它所在的位置。只有视图的CALayer的表示层在屏幕上显示动画。该视图已立即到达目的地。这使得交互更加困难。 You will likely find this answer helpful.

答案 1 :(得分:0)

这应该可以解决问题

-(UIView*)hitTest:(CGPoint)point withEvent:(UIEvent *)event{
if ([[self.layer presentationLayer] hitTest:point]) {
    return self;
}
return [super hitTest:point withEvent:event];}

在你的uiview中写下