表视图单元格作为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。