2012-01-11 13 views
0

私が抱えている問題は、画面全体の動きをアニメーション化しているUIViewまたはUIViewControllerのタッチを検出していることです。私はUITapGesturetouchesbegan、およびUIbuttonを試しました。しかし、問題はアニメーションブロックを使用していることがわかりました。ビューの位置は終了位置に設定されており、移動中はタッチできません。 (ビューが停止する位置とタッチが読み取られる位置に触れることができます)。アニメーション用のアニメーションブロックUIViewを試しました。私もCAKeyframeAnimationを使用しようとしましたが、すべて同じ結果になります。アニメーション(移動)ビューのタッチを検出する

[UIView animateWithDuration:10 delay:1 options:(UIViewAnimationOptionCurveEaseInOut | UIViewAnimationOptionBeginFromCurrentState | UIViewAnimationOptionAllowUserInteraction) animations:^{ 
    [testViewController.view setFrame:CGRectMake(900, 20, 100, 100)]; 

} completion:^(BOOL finished) { 
    // Animate moving to another location 
}]; 

ここでは簡単な例を示します。私は画面の周りをランダムに動き回るボールの画像が欲しい。私はいつボールが触れられたのか知りたい。

答えて

0

私は別のプロジェクトで偶然答えを見つけました。問題はアニメーション化されているようにビューのフレームを見つけようとしていたことでした。アニメーション中はフレームは変化しません。しかし、層の性質が役立ちます。

[view.layer presentationLayer] 

このレイヤープロパティからアニメーション表示の現在のフレームを取得できます。それから、presentationLayersフレームでテストを打つことができます。