2012-02-22 2 views
2

私のプロジェクトでは、長いプレスを使用してイベントを処理するためにUIButton(または別のコンポーネント)を使用する必要があります。 私は説明してみましょう、私は秒をカウントし、圧力の停止にリリースするタイマーをタイマーを押さなければならない、私はUILongPressGestureRecognizerの管理を試したが、ボタンが押されたときにイベントを思い出すため、私が指を動かすだけですが、タイマーが消えてボタンが押されている(指が静止している)すべての時間をカウントし、指が離されたときにカウントを停止したいと思います。指が静止しているUIButtonの長いプレス

誰でも私を助ける方法を知っていますか? ありがとう

+0

に私はあなたの質問を理解することはできませんコーディングで を更新しました

//connect this action with Touch up inside - (IBAction)touchUp:(id)sender { NSLog(@"up"); } //connect this to tocuh down - (IBAction)touchDown:(id)sender{ NSLog(@"down"); } 

。別の言い方をしてみることができますか? –

+0

こんにちは私はボタンを押して、あなたが5秒ボタンの上に私の指を保持し、5秒カウントして私はそれを(私の指がそれにどのようにmutch時間のために)それを押して、解除ボタンのタイマー停止。 – AleMal

答えて

6

は、ボタンのイベントのためにこれらの2つの方法を使用してください。..

UILongPressGestureRecognizer *lpgr = [[UILongPressGestureRecognizer alloc] 
             initWithTarget:self action:@selector(handleLongPress:)]; 
lpgr.minimumPressDuration = 1.0; 
lpgr.delegate = self; 

が、私はこれは完全にうまくいくと思う...代わりにuを使用することができ、タイマーを追加する必要はありません。ボタンを押すと touchDownが呼び出され、ボタンから指を離すと touchUpが呼び出されます。これら2つの方法の時間差を計算します。また、 touchDownでタイマーを開始し、 touchUpで停止/再開することもできます。あなたはこの

[btn addTarget:self action:@selector(touchUp:) forControlEvents:UIControlEventTouchUpInside]; 
[btn addTarget:self action:@selector(touchDown:) forControlEvents:UIControlEventTouchDown]; 

のように書くことができますし、XIB enter image description here

+0

ありがとうございますが、私のボタンに2つのIBActionをどのように接続できますか? – AleMal

+0

私は私の答えを更新しました.. –

+0

ありがとう!!!! – AleMal

0

私はUILongPressGestureRecognizerについて言いましたが、理解できません。しかし、あなたは-(void)handleLongPress:(UILongPressGestureRecognizer *)gestureRecognizer { }の中にurコードを書くことができます。私はこの方法を使って同じことをして、成功した結果を得ました。:)。あなたも

+0

ありがとうございますが、ボタンを指でロックしても機能しますか?私はUILongPressGestureRecognizerを使ってみましたが、私が指を動かすと動くのです – AleMal

+0

それはうまくいくはずです。 UIScrollViewにこのボタンがないか、またはこのボタンに干渉しているUIGestureRecognizerがあります。 –

関連する問題