我有一个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
有任何建议如何处理此案件?
答案 0 :(得分:1)
您可以创建UIButton
类的子类,并拥有所需信息的属性。然后使用@selector(buttonPressed:)
-(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