スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

UITableViewCellのaccessoryViewにボタンを設定する方法

UITableViewCellのaccessoryで始めからあるプロパティの

cell.accessoryType = UITableViewCellAccessoryDetailDisclosureButton;

を使えば、

(void)tableView:(UITableView *)tableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath

で、タップ時の処理を書けるが、任意のaccessoryViewを指定した時はそのままでは動かない。

下記のようにする。

cellForRowAtIndexPathの中で。

UIButton * button = [UIButton buttonWithType:UIButtonTypeCustom];
button.frame = CGRectMake(0, 0, 30, 30);
[button setBackgroundImage:[[UIImage alloc] imageNamed:@"plus.png"] forState:UIControlStateNormal];
button.backgroundColor = [UIColor clearColor];
[button addTarget:self
action:@selector(accessoryButtonTapped:withEvent:)
forControlEvents:UIControlEventTouchUpInside];
cell.accessoryView = button;
[button release];


新しくメソッドを作る。

- (void) accessoryButtonTapped: (UIControl *) button withEvent: (UIEvent *) event
{
NSIndexPath * indexPath = [self.tableView indexPathForRowAtPoint: [[[event touchesForView: button] anyObject] locationInView: self.tableView]];
if ( indexPath == nil ) {
return;
}

[self.tableView.delegate tableView: self.tableView accessoryButtonTappedForRowWithIndexPath: indexPath];
}


これで、accessoryButtonTappedForRowWithIndexPath が動くようになる。

参考サイト

http://ja.w3support.net/index.php?db=so&id=869421
スポンサーサイト

トラックバック

コメント

コメントを残す

Secret


プロフィール

U2K

Author:U2K
いろいろプログラムに関しての覚え書きをちょくちょくと書いていきます。

オススメ










オススメ

忍者AdMax

u2k on Twitter

最近の記事


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。