1

UIImageViewはアニメーション化され、 を受け取っているを持っていUITapGestureRecognizerます。問題は、アニメーション化されている間、タップ ジェスチャ領域がビューと共に移動しないことです。ビューの元の場所をタップでき、タップ ジェスチャが認識されます。ビューが元の位置ではなく移動しているときにタップを認識させる方法を知っている人はいますか?

編集1:これは、タップジェスチャ認識エンジンを設定した方法です:

UITapGestureRecognizer *tapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(viewTapped:)];
    tapRecognizer.cancelsTouchesInView = YES;
    tapRecognizer.numberOfTapsRequired = 1;
    tapRecognizer.delegate = (id)self;
    [imageView addGestureRecognizer:tapRecognizer];
    imageView.userInteractionEnabled = YES;

アニメーションが数秒続くので、ジェスチャ レコグナイザーがそのパス上で私のビューをたどる方法はありますか? 設定を見逃していませんか?

編集2:これは私のアニメーションを設定するための私のコードです:

    double width = backgroundImageView.frame.size.width;
    double height = backgroundImageView.frame.size.height;

    CGMutablePathRef path = CGPathCreateMutable();
    double startX = -imageView.frame.size.width;
    double startY = height/4;
    double endX = 3*width;
    double endY = 0;
    double duration = 40;
    CGPathMoveToPoint(path, NULL, startX, startY);
    CGPathAddLineToPoint(path, NULL, endX, endY);
    CAKeyframeAnimation *animation = [CAKeyframeAnimation animationWithKeyPath:@"position"];
    animation.duration = duration;
    animation.path = path;
    animation.repeatCount = HUGE_VALF;
    [imageView.layer addAnimation:animation forKey:@"theAnimation"];
4

1 に答える 1

2

興味のある人のために、私は自分の問題を解決しました。を使用し、プレゼンテーションからNSTimerをチェックして更新するだけUIImageViewです。framelayer

CGRect viewLocation = [[[imageView layer] presentationLayer] frame];    
imageView.frame = CGRectMake(viewLocation.origin.x, viewLocation.origin.y, viewLocation.size.width, viewLocation.size.height);

その後、私の画像ビューがどこにあってもタッチが機能します:-)

于 2012-09-10T17:19:20.230 に答える