2010-08-05 13 views
1

我有一个包含多个单元格的简单TableView。通常情况下,我通过点击这个单元切换到选定的单元格细节。但是如果我需要每个单元的专用按钮怎么办?我已经在界面生成器中看到了“表格视图单元格”属性,它具有我所需要的,但它不能被添加到现有的单元格中。iPhone SDK:使用专用按钮打开单元格,而不是通过单元格点击

如何正确地将这种按钮添加到标准TableView的每个单元格?

回答

2

我在现在正在处理的应用程序中做类似的事情。我有一个单元,它上面有一个按钮,我需要知道在哪个单元中按了哪个按钮。我是这样做的..

添加我按钮给每个小区..

// add buy button to each cell 
UIImage *image; 
buyButton = [UIButton buttonWithType:UIButtonTypeCustom]; 
image = [UIImage imageNamed:@"buy.png"]; 
[buyButton setBackgroundImage:image forState:UIControlStateNormal]; 
buyButton.frame = CGRectMake(220, 35, 96, 34); 
[buyButton setTag:cellIndex]; 
[buyButton addTarget:self action:@selector(buyTickets:) forControlEvents:UIControlEventTouchUpInside]; 
[cell.contentView addSubview:buyButton]; 

用于确定哪个“按钮”,在其中被选择的单元的方法,我然后推动与所述另一视图控制器所选按钮的信息...

// buy tickets button pressed from main table view 
- (void) buyTickets:(id)sender{ 


    ResultViewController *vc = [[ResultViewController alloc] init]; 
    vc.buyMovieID = [sender tag]; // "sender tag" is the cell id the button is located in 
    [[super navigationController] pushViewController:vc animated:YES]; 
    [vc release]; 
} 

这是按钮在每个单元格上的样子。 希望这有助于!

P.S.点击CELL,将推动另一个视图控制器,但点击“购买门票”按钮会推动另一个。

alt text http://luistovar.com/ultratableview.jpg

+0

谢谢你们谁回应,但这个答案似乎是我见过的最好的:) – ufw 2010-08-05 23:44:01

0

我添加一个按钮到tableview单元格的方式是继承UITableViewCell,然后在界面构建器中构建它的视图。

2

我想详细披露配件类型是你所需要的。该文档可在UITableViewCell class reference上找到。

它说:

附属视图显示在表视图的正常(默认)状态的单元格的右侧。标准附件视图包括披露人字形;有关有效accessoryType常量的描述,请参阅“单元格附件类型”。默认值为UITableViewCellAccessoryNone。如果通过accessoryView属性设置了自定义附件视图,则忽略此属性的值。如果单元格已启用且附件类型为UITableViewCellAccessoryDe​​tailDisclosureButton,则附件视图将跟踪触摸,并在轻敲时向数据源对象发送tableView:accessoryButtonTappedForRowWithIndexPath:消息。

设置你的细胞的accessoryType属性UITableViewCellAccessoryDe​​tailDisclosureButton,您可以轻松地做任何你按下详细披露按钮时婉。使用这种附件类型的好处在于它是一个标准按钮,因此它很便于用户使用,它可以跟踪哪些单元格已被触摸到。

如果您想使用自定义按钮,您应该将该属性设置为该自定义按钮并听取其上的事件。

相关问题