カスタムセルに追加したボタンの処理を、ViewControllerで行う方法。
タップされたボタンのセルのインデックスの取得。
Cell
- StoryBoard上でセル内にボタンを追加する
- Attribute inspector – view – Tag に値を設定する
- Outlet接続のみ行う(不要かも)
ViewController
ボタンのプロパティを宣言
1
| @property (weak, nonatomic) UIButton *button;
|
ボタンとタップ時の処理を作成する
任意の場所で。
1
2
3
4
| // Cellにボタンを設定した時のTag値
_button = (UIButton*)[cell viewWithTag:1];
// ボタンのイベントを登録
[_button addTarget:self action:@selector(buttonTapped:event:) forControlEvents:UIControlEventTouchUpInside];
|
タップ時の処理
1
2
3
4
5
6
7
8
9
| - (void)buttonTapped:(id)sender event:(UIEvent*)event
{
// タップされたボタンのセルインデックスを取得する
UITouch *touch = [[event allTouches]anyObject];
CGPoint point = [touch locationInView:_sampleTableView];
_tappedIndexPath = [_sampleTableView indexPathForRowAtPoint:point];
// 実行したい処理
}
|
参考