表视图单元格作为按钮

时间:2012-03-02 09:40:30

标签: objective-c ios uitableview

我正在尝试将已分组的表视图单元设置为按钮,但是我似乎无法在XCode 4.2的界面构建器中或以编程方式找到它的位置。

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

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

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

enter image description here

2 个答案:

答案 0 :(得分:10)

想象一下,你的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];
}

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

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!

答案 1 :(得分:1)

这些不是按钮.. 清除cookie和其他东西的功能在处理 表视图委托方法

 tableview : didselectRow 

在那里,您可以找到选择的部分和行,并根据该行执行功能。