我正试图在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){}];
}
感谢您的任何建议!
答案 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中写下