0

uibutton を押しながら uiimageview を移動するにはどうすればよいですか? 古いコードは、もう一度移動するには2、3回押す必要があり、長押しは内部で修正されているため機能しません。

-(IBAction) MoveRightButton : (id) sender {

[self animateRight];
[self rightTimer];

}

-(IBAction) stopRight {

[image stopAnimating];
[rightTimer invalidate];
}

-(void) animateRight {
with animateRight images and start animating.
}

-(void) goRight {
[UIView animateWithDuration : 0.5 animation : ^{
image.frame = CGRectMake (image.frame.origin.x + 10, image.frame.origin.y,image.frame.size.width, image.frame.size.height);
}];
[self stopRight];
}

-(void) rightTimer {
rightTimer = [some NSTimer with selector of (goright)];
4

2 に答える 2

0

送信されたイベントを使用して、UIButton の 2 つの IBAction メソッドを作成します。

Touch Down - ボタンが最初に押されたときに、関連するメソッドが呼び出されます。

Touch Up Inside - ボタンが離されると、関連付けられたメソッドが呼び出さます。

したがって、「タッチダウン」メソッドでは、アニメーションをそのまま開始し、「タッチアップインサイド」メソッドでは、次のような方法でアニメーションを停止します。

#import <QuartzCore/QuartzCore.h>

[myView.layer removeAllAnimations];

編集:

(1) .xibを表示し、UIButton を作成します。

(2) 「 alt 」を押したまま、 .hファイルをクリックします。これにより、そのファイルがアシスタント エディターに表示されますが、引き続き xib で作業することができます。

(3) "ctrl"を押したまま、UIButton から.hファイル (@interface の下) をクリック & ドラッグします。

(4)結果のポップアップで、接続フィールドで「アクション」を選択し、メソッドに名前を付けます。eventフィールドには多くのオプションが含まれており、そのうちTouch DownTouch Up Insideに関心があります。いずれかを選択し、[接続] をクリックします。

(5) (4)で実行しなかったイベントについて繰り返します(ただし、明らかに名前を変更します)。これらのメソッドは.mファイルに自動的に作成されるので、そこに行って好きなように編集してください!

于 2013-01-07T21:27:42.400 に答える
0

このアクションをマッピングしてみてください

UIControlEventTouchDownRepeat instead of UIControlEventTouchUpInside       

メソッドへ

-(IBAction) MoveRightButton : (id) 送信者

于 2013-01-07T16:50:29.790 に答える