gpt4 book ai didi

ios - UITableViewCell 按钮更改图像

转载 作者:行者123 更新时间:2023-11-29 01:47:22 24 4
gpt4 key购买 nike

在我的表格单元格中,我有这样的按钮

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];
}

关于ios - UITableViewCell 按钮更改图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31747012/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com