表视图单元格作为按钮
问题描述:
我想设置一个表格视图单元格已被分组,作为一个按钮,但我似乎无法找到在XCode 4.2或编程方式在界面生成器中的位置。表视图单元格作为按钮
我试过将表格视图单元连接到IBAction,但它只允许我创建或链接到IBOutlet。
作为一个临时修复,我在单元格中嵌入了一个矩形按钮,但按下时不会突出显示蓝色。
我见过几个应用程序这项工作,一个例子是在下面的Safari浏览器的应用程序清除历史记录,并清除Cookies和数据按钮:
答
试想一下,你的IBAction为是这样的:
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
//check if your cell is pressed
BOOL myCellIsPressed = ...
if(myCellIsPressed)
[self buttonPressed];
}
要检查是否已按下你的,你有几种方式,为:
-(IBAction)buttonPressed{
//Do my stuff
}
然后,你应该在你的委托做到这一点例如,如果您知道表格中的按钮行:
int myCellRow = 5;
if (myCellRow == IndexPath.row) //YES!
或者您可以在您的单元格中放置标记然后检查是否是一个:
#define myTag 5
在创建单元:
UITableViewCell *myCell = ...
myCell.tag = myTag
而且在didSelectRowAtIndexPath方法:
UITableViewCell *selectedCell = [tableView cellForRowAtIndexPath:indexPath];
if (selectedCell.tag == myTag) //YES!
答
这些都不按钮.. 的清晰饼干和其他东西的函数在 表视图委托方法进行处理
tableview : didselectRow
在此可以找到选择了哪个部分,并且行和执行功能BAS编辑。
一个很简单的问题,但如何在didSelectRowAtIndexPath方法知道哪个小区或行被实际按下?我得到的BOOL是检查它是否被按下,但它怎么知道哪一个? – jcrowson 2012-03-02 10:24:52
让我编辑我的答案 – 2012-03-02 10:30:27
绝对的辉煌回应,非常感谢tonio。最后一个问题要清楚:IndexPath.row代表用户按下了什么?所以当你说myCellRow == IndexPath.row时,是在说被按下的单元格叫做myCellRow,然后做些什么? – jcrowson 2012-03-02 10:47:46