2012-01-26 15 views
4

次の問題があります。私はUIScrollViewを持っています。これらのボタンには、これらのボタンの画像としてアイコンが設定されています。私は各ボタンに長いプレス認識装置を付けています。長押しのジェスチャーで送信ボタンに小さな削除アイコンを表示するにはどうすればよいですか?私の目標は、ユーザーが特定のアプリケーションを削除したいときに、iOSが提示する動作を作成することです。 これは、(画像付き)ボタンのコードである:長押しのジェスチャーでUIButtonに画像を表示

//set the button with the image of conference here. 
UIButton * button = [UIButton buttonWithType:UIButtonTypeCustom]; 
button.frame = CGRectMake(3, 3, w-5, h-5); 
CALayer * l = [button layer]; 
[l setMasksToBounds:YES]; 
[l setCornerRadius:8.0]; 
[button setImage:thumb forState:UIControlStateNormal]; 

button.property = confInfo; 
[button addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside]; 
button.tag = i; 
bView.tag = i; 

//Add gesture recognizer to be used for deletion of conference. 
UILongPressGestureRecognizer *pahGestureRecognizer = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(longPressGestureRecognizerStateChanged:)]; 

pahGestureRecognizer.minimumPressDuration = 1.0; 
[button addGestureRecognizer:pahGestureRecognizer]; 

このコードは(コードでIを参照)のサイクルです。私の長いタップアクションは、このようなものです:

- (void)longPressGestureRecognizerStateChanged:(UIGestureRecognizer *)gestureRecognizer { 

     switch (gestureRecognizer.state) { 

      case UIGestureRecognizerStateEnded: 
       NSLog(@"Tapped!!!");      
       break; 

      default: 
       break; 
     } 
} 

私は、ボタンの右上隅に小さいXの画像を表示するには、このアクションにクリックしたボタンを渡すことができますどのように?

答えて

2

ジェスチャ認識機能は、そのviewプロパティを使用してUIButtonに接続する必要があります。あなたはXとイメージに強調表示または選択した画像を設定した場合

case UIGestureRecognizerStateEnded: 
    NSLog(@"Tapped!!!"); 
    [((UIButton*)gestureRecognizer.view) setImage:thumbWithX forState:UIControlStateNormal]; 
    break; 
+0

、あなたは単に少しよりよいだろう画像は、代わりに変更のボタンの状態を変えることが、あなたがしているかどうかに依存可能性がありそれらの状態画像を既に使用している。 –

+0

@ Fls'Zen:私はクリックイベントのアクションを持っています。なぜ、私は長いクリックで小さな画像を見せたいのですか?また、私はこのボタンがどれであるかを少し見ており、Xを持つイメージは実際にはアクションのあるボタンです。 –

関連する問題