我想切换UITableViewCell图像 - cell.imageView.image。 (例如,红色 - 绿色)
如果当前图像为绿色,则当用户单击UITableViewCell时,图像会变为红色。
设置图像后
cell.imageView.image = [UIImage imageNamed:@"Green.png"];
如何检测当前使用的单元格是哪个图像?
感谢您的帮助!
答案 0 :(得分:2)
在imageView
上设置tag
:
#define IMAGE_TAG_GREEN 50
#define IMAGE_TAG_RED 51
-(UITableViewCell*) tableView:(UITableView*) tableView cellForRowAtIndexPath:(NSIndexPath *) indexPath {
static NSString *CELL_ID = @"some_cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CELL_ID];
if(cell == nil) {
//do setup here...
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CELL_ID] autorelease];
cell.imageView.tag = //some logic here...
}
if(cell.imageView.tag == IMAGE_TAG_GREEN) {
//...
} else {
//...
}
return cell;
}
由于tag
是来自UIView
的继承属性,因此您无法将其与UIImage
本身一起使用,但可以将其与{{{1>}一起使用1}} 强>
答案 1 :(得分:1)
这有点粗糙,但您应该能够设置如下语句:
if ([cell.imageView.image isEqual:[UIImage imageNamed:@"Green.png"]]) {
// image is green;
} else {
// image is red;
}
我测试了它只是为了确保它工作正常
答案 2 :(得分:1)
我相信只需添加一个布尔表达式,如果为绿色则为TRUE,如果为红色则为FALSE。 将此布尔表达式设置为 extern type ,以便这可以是全局表达式。 单击图像时设置布尔值。 我相信这会有所帮助。
答案 3 :(得分:-1)
我是新手 - 但我想你可以使用if / then语句。
If (cell.imageView.image = [UIImage imageNamed:@"Green.png"]) {
cell.imageView.image = [UIImage imageNamed:@"Green.png"];
} else
{
cell.imageView.image = [UIImage imageNamed:@"Red.png"];
}
或者你可以非常喜欢并使用ternary operator。类似下面的内容(注意下面的代码可能是错误的 - 但希望能让你开始!):
cell.imageView.image = ([UIImage imageNamed:@"Green.png"]) ?
cell.imageView.image = [UIImage imageNamed:@"Green.png"]; :
cell.imageView.image = [UIImage imageNamed:@"Red.png"];
让我们知道你如何使用它。
Kolya