[英]UITableViewCell button change image
在我的表格单元格中,我有这样的按钮
cell.btnAddFriend.tag = indexPath.row;
[cell.btnAddFriend addTarget:self action:@selector(addFollow:) forControlEvents:UIControlEventTouchUpInside];
当我单击按钮时,它必须调用函数addFollow:函数,这工作正常。
在addFollow函数中,根据条件,我必须更改cell.btnAddFriend的图像。
为此,我正在使用此代码
[cell.btnAddFriend setImage:[UIImage imageNamed:@"icon_friend.png"]forState:UIControlStateNormal];
如果表中有一行,则工作正常,如果表中有多行,则此行不通,因为我没有传递必须更改按钮图像的索引路径的值。
谁能帮助我如何通过函数设置表格单元格的值。
您可以使用以下命令-您实际上在addFollow
获得了按钮
- (void) addFollow:(UIButton *)sender //this is, actually, button you tapper, so you don't worry which cell it is
{
[sender setImage:[UIImage imageNamed:@"icon_friend.png"]forState:UIControlStateNormal];
}
但是,您应该考虑以下内容-如果在tableView:cellForRowAtIndextPath:
重用单元格(您可能会看到)是,您在单元格中的按钮上设置了这些图像,实际上您并未轻按。 如果不是所有单元格都适合屏幕,这是可能的(您可以滚动它们使其不可见)。 在这种情况下,无论是否轻按按钮,都应保持状态。
一种方法。 宣布
@property NSMutableSet *buttonTagsTapped;
addFollow
将更改
- (void) addFollow:(UIButton *)sender //this is, actually, button you tapped, so you don't worry which cell it is
{
[sender setImage:[UIImage imageNamed:@"icon_friend.png"]forState:UIControlStateNormal];
[self.buttonTagsTapped addObject:[NSNumber numberWithInt:sender.tag]];
}
在哪里创建单元
cell.btnAddFriend.tag = indexPath.row;
if([self.buttonTagsTapped containsObject:[NSNumber numberWithInt:sender.tag]]) {
[cell.btnAddFriend setImage:[UIImage imageNamed:@"icon_friend.png"]forState:UIControlStateNormal];
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.