我有一个包含多个单元格的简单 TableView。通常,我通过点击此单元格来切换到选定的单元格详细信息。但是,如果我需要为每个单元格设置一个专用按钮怎么办?我在 Interface Builder 中看到了“Table View Cell”属性,它有我需要的东西,但它不能添加到现有的单元格中。
如何正确地将这种按钮添加到标准 TableView 的每个单元格中?
我在我现在正在开发的应用程序中做了类似的事情。我有一个单元格,上面有一个按钮,我需要知道哪个按钮在哪个单元格中被按下。我是这样做的。。
我将按钮添加到每个单元格..
// 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];
}
这是每个单元格上按钮的外观。希望这可以帮助!
PS 点击 CELL 会推送另一个视图控制器,但点击“购买门票”按钮会推送另一个视图控制器。
我认为详细信息披露附件类型是您所需要的。该文档可以在UITableViewCell 类参考中找到。
它说 :
在表格视图的正常(默认)状态下,附件视图出现在单元格的右侧。标准附件视图包括人字形披露;有关有效附件类型常量的描述,请参阅“单元附件类型”。默认为 UITableViewCellAccessoryNone。如果通过 accessoryView 属性设置了自定义附件视图,则忽略此属性的值。如果单元格已启用且附件类型为 UITableViewCellAccessoryDetailDisclosureButton,则附件视图会跟踪触摸,并在点击时向数据源对象发送 tableView:accessoryButtonTappedForRowWithIndexPath: 消息。
将单元格的accessoryType属性设置为UITableViewCellAccessoryDetailDisclosureButton,当按下详细信息披露按钮时,您可以轻松地做任何您想做的事情。使用这种附件类型的好处在于它是一个标准按钮,因此它是用户友好的,它可以为您完成跟踪哪个单元格被触摸的所有工作。
如果您想使用自定义按钮,您应该将附件视图属性设置为该自定义按钮并监听其上的事件。
我向 tableview 单元格添加按钮的方式是通过子类化UITableViewCell
,然后在界面构建器中构建其视图。