2011-10-04 16 views
3

ボタンを長押ししたい場合は、長押ししてからボタンの上に十字ボタンそのボタンはスクロールビューからテーブルビューに追加されます。ボタンを長押しして、そのボタンの上に削除ボタンを表示するなど、背景からアプリを削除するようにする

私は、ウェブ上で検索しimplement.IにUILongPressGestureRecognizerを得、それを試してみましたが、私は私のスクロールビューで多くのボタンがあると私はすべてのボタンにUILongPressGestureRecognizerを置くが、どのように私はそのようにセレクタメソッドに押されたボタンの参照を与えますその特定の押されたボタンに十字ボタンを追加することができます。

UILongPressGestureRecognizer *longPressGesture = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(deleteAppFromList:)]; 
UIButton *btn=(UIButton *)[cell.contentView viewWithTag:101+i]; 
[btn addGestureRecognizer:longPressGesture]; 
[longPressGesture release]; 

私はこれを実装する方法を提案してください.IOSデバイスまたはシミュレータからアプリを削除するときと同じように機能したいと思います。

- (void)handleGesture:(UIGestureRecognizer *)gestureRecognizer; 

が、認識が「ビュー」プロパティ、あるいます例えばあなたが解雇認識エンジンへの参照を渡されるジェスチャー認識の対象として設定し、あなたのハンドラメソッドでは、

答えて

3

私はちょうど似たようなことをしました。私はtouchDownイベントを検出し、1秒後にフラグをセットするタイムドメソッドをスケジュールし、その後、タッチアップイベントが検出されると、フラグをチェックし、適切なメソッドを呼び出します。

[myButton addTarget:self action:@selector(itemTouchDown) forControlEvents:UIControlEventTouchDown]; 
[myButton addTarget:self action:@selector(itemTouchUpInside) forControlEvents:UIControlEventTouchUpInside]; 

-(void)itemHoldTimer:(NSTimer *)timer 
{ 
    self.itemHoldTimer = nil; 
    didHold = YES; 
} 

-(void)itemTouchDown{ 
    didHold = NO; 
    self.itemHoldTimer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(itemHoldTimer:) userInfo:nil repeats:NO]; 
} 

-(void)itemTouchUpInside { 
    if (didHold) { 
     didHold = NO; 
     [self itemWasTouchedUpAndDidHold]; 
    } else { 
     didHold = NO; 
     [self itemWasTouchedUp]; 
    } 
} 
+0

私の魅力のようなその仕事。たくさんのことをありがとう。 – Gypsa

0

認識装置が取り付けられているビュー。これを直接使用するか、このビューのタグを取得すると、どのボタンが押されたかを調べることができます。

UIView *myButton = gestureRecognizer.view; 

言われているように、ジェスチャ認識機能を各ボタンに追加するのは間違った方法です。私はカスタムコントロールを作成し、 'touchesBegan'と 'touchesEnded'を直接処理します。

0

長いプレスレコグナイザのハンドラメソッドでは、viewプロパティとそのタグを使用してビューを識別します。

-(void)handleLongPress:(UILongPressGestureRecognizer*)longPressRecognizer 
{ 
    //longPressRecognizer.view.tag 
} 
+0

[署名を使用しないでください](http://stackoverflow.com/faq#signatures) – albertamg

+0

大丈夫です。私はしません。 – Akshay

関連する問題