2012-02-26 21 views
1

私のアプリケーションでは、ボタンを内部に持つカスタムテーブルビューセルを作成しました。私は各ボタンがタップされたときに特定のアクションを実行する必要があります。現時点では、ボタンにアクションを追加できるので、タップしたときにアクションが呼び出されていますが、どのボタンがそのアクションを担当しているのかわかりません。ボタンのユーザーイベントに基づいて異なる操作を行うにはどうすればよいですか?私は通常の方法で "タグ"プロパティを設定してチェックすることでこれを行うことができます。カスタムUITableViewCellの各UIButtonの個別のアクション

[sender tag] 

この場合はわかりません。前もって感謝します。

+0

セルのどのボタンが押されたのか、ボタンがどのセルに入っているのかわからないという問題がありますか? – jrturton

+0

@jrturtonどのボタンがタップされているのか分からず、ボタンが表のセルを完全に覆うようにレイアウトされているので、セルに触れることができませんでした – rakeshNS

答えて

0

例:

[button1 addTarget: target action: @selector(action1) forControlEvents: UITouchUpInside]; 
[button2 addTarget: target action: @selector(action2) forControlEvents: UITouchUpInside]; 
[button3 addTarget: target action: @selector(action3) forControlEvents: UITouchUpInside]; 
0

ループのために作ると、各ボタンに(おそらく行番号に基づいて)増分タグを割り当て、ならびに対象となるビューコントロール内の単一方法(すべてのボタンを取得同じセレクター)。

呼び出されたメソッドでは、タグ番号を抽出し、必要なアクションを実行します。

0

セルにボタンを追加するのはおそらくcellForRowAtIndexPathです。

テーブルにセクションが1つしかない場合は、簡単です。単にcellForRowAtIndexPathを変更してください。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 

    // .. create cell 

    // .. add button 

    myButton.tag = indexPath.row; 
    [myButton addTarget: target action: @selector(buttonClicked:) forControlEvents: UITouchUpInside]; 

    return cell; 
} 

-(void) buttonClicked:(id)sender { 

    NSLog (@"user clicked button in row %d", [(UIButton *)sender tag]); 

    // ..do your stuff here 
} 
関連する問題