双单元格按钮动作

时间:2013-07-04 11:06:41

标签: ios uitableview uibutton

我有一个UITableView,它有一个用于UITableViewCell的xib文件。

在UITableViewCell上我添加了2个单元格数据 - 因为我想实现两列样式。所以无法修改。单元格有点复杂也有更多的组件,我想处理按钮UIControlEventTouchUpInside事件的动作。它会下载一些东西,需要在任务竞争之后将按钮文本从“下载”更改为“查看”,例如

如果我不处理多线程,异步的东西,但需要,它将解决的问题。所以我需要将按钮和索引传递给action方法,或者为按钮设置一个属性(在Java中很容易)但是找不到它。

半码看起来像这样:

    [buttonAction addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside];

需要这样的东西:

-(void)buttonPressed:(UIButton*)button index: (int) index
{

}

在另一个问题中,索引是以buttonAction.tag = index传递的,但如果我使用该属性,那么我觉得它不会起作用

UIButton * buttonAction =(UIButton *)[cell viewWithTag:205];发表声明

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

有任何建议如何处理此案件?

1 个答案:

答案 0 :(得分:1)

您可以创建UIButton类的子类,并拥有所需信息的属性。然后使用@selector(buttonPressed:)

为TouchUpInside的按钮添加操作
-(void)buttonPressed:(YourCustomButton *)sender  // or id and then you check it's class and cast to your custom button class
{
    // work with sender.yourProperty
}

修改

 [button setTitle:@"Download" forState:UIControlStateNormal];
 [button setTitle:@"View" forState:UIControlStateReserved];

然后根据您的标题开始工作:button.currentTitle