表视图单元格作为按钮

jcr*_*son 4 objective-c uitableview ios

我正在尝试设置已分组的表视图单元格,但是我似乎无法在XCode 4.2的界面构建器中或以编程方式找到在何处执行此操作.

我已经尝试将表格视图单元格链接到IBAction,但它只允许我创建或链接到IBOutlet.

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

我在几个应用程序中看到过这项工作,例如下面的Safari应用程序中的清除历史记录和清除Cookie和数据按钮:

在此输入图像描述

Ant*_* MG 10

想象一下,您的IBAction是这样的:

-(IBAction)buttonPressed{
//Do my stuff
}
Run Code Online (Sandbox Code Playgroud)

然后,您应该在您的委托中执行此操作:

 -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

    //check if your cell is pressed
    BOOL myCellIsPressed = ...

     if(myCellIsPressed)
        [self buttonPressed];
}
Run Code Online (Sandbox Code Playgroud)

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

int myCellRow = 5;
if (myCellRow == IndexPath.row) //YES!
Run Code Online (Sandbox Code Playgroud)

或者你可以在你的单元格中放置一个标签,然后检查是否是那个标签:

#define myTag 5
Run Code Online (Sandbox Code Playgroud)

创建单元格时:

UITableViewCell *myCell = ...
myCell.tag = myTag
Run Code Online (Sandbox Code Playgroud)

在didSelectRowAtIndexPath中:

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