4

アニメーションでUIButtonを動かしたいのですが、ユーザーがタッチすると動いている間、そのイベントを認識したいのですが、アニメーション中にUIButtonはイベントを送信しません。

私の問題を解決してください。

4

3 に答える 3

8

AllowUserInteraction オプションを試しましたか?

 [UIView animateWithDuration:5.0 
                       delay:0.0         
                     options:UIViewAnimationOptionAllowUserInteraction
                  animations:^{ // move the button }
                 completion:^(BOOL finished){}];
于 2012-10-12T14:12:22.693 に答える
1

アニメーション中は、このプロパティの値に関係なく、アニメーションに関係するすべてのビューでユーザー操作が一時的に無効になります。アニメーションを構成するときに UIViewAnimationOptionAllowUserInteraction オプションを指定することで、この動作を無効にすることができます。

また、実装することができます

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

スーパービューでイベントをキャッチし、イベントがボタンを指しているかどうかを確認します。

于 2012-10-12T14:12:06.797 に答える
0

UIButtoninherit from UIControlwhich inheritとしてUIView、ブロックベースの方法を使用してボタンをアニメーション化していると思いますanimateWithDuration:delay:options:animations:completion:

UIViewAnimationOptionAllowUserInteractionUIButton をアニメーション化してユーザー インタラクションを認識できるようにするときに、オプションを追加する必要があります。実験したように、アニメーション中のユーザー インタラクションはデフォルトで無効になっています。

于 2012-10-12T14:12:23.223 に答える