表视图单元格作为button

我试图设置一个已被分组的表视图单元格,作为一个button,但我似乎无法find在XCode 4.2中的界面生成器或编程方式做到这一点。

我已经尝试将表视图单元格链接到一个IBAction,但它只能让我创build或链接到一个IBOutlet。

作为一个临时修复,我在单元格中embedded了一个矩形button,但按下时不会突出显示蓝色。

我已经在几个应用程序中看到了这个工作,例如下面的Safari应用程序中的清除历史logging和清除Cookies和数据button:

在这里输入图像说明

试想一下,你的IBAction是这样的:

-(IBAction)buttonPressed{ //Do my stuff } 

那么,你应该在你的代表中这样做:

  -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { //check if your cell is pressed BOOL myCellIsPressed = ... if(myCellIsPressed) [self buttonPressed]; } 

要检查您的单元格是否被按下,您有几种方法,例如,如果您知道表格中的button行:

 int myCellRow = 5; if (myCellRow == IndexPath.row) //YES! 

或者你可以在你的单元格中添加一个标签,然后检查是否是这样:

 #define myTag 5 

创build单元格时:

 UITableViewCell *myCell = ... myCell.tag = myTag 

在didSelectRowAtIndexPath中:

 UITableViewCell *selectedCell = [tableView cellForRowAtIndexPath:indexPath]; if (selectedCell.tag == myTag) //YES! 

这些不是button。清除cookie和其他东西的function是在表视图委托方法处理

  tableview : didselectRow 

在那里你可以find哪一个部分和哪一行被选中,并根据它执行function。