无法更改所选定制单元格中的图像
我创build了一个自定义的单元格来显示文本和2个图像,当用户select单元格时,图像应该改变。 我可以访问单元格的属性,但不能更改它们:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { [tableView deselectRowAtIndexPath:indexPath animated:YES]; CustomCell *cell = (CustomCell *)[self.tableView cellForRowAtIndexPath:indexPath]; cell.check.image = setImage:[UIImage imageNamed:@"1355327732_checkbox-checked"]; [cell.check setImage:[UIImage imageNamed:@"1355327732_checkbox-checked"]]; }
cell.check是一个UIImageView
我错过了什么?
如果你正在使用自定义单元格,那么你可以覆盖函数setSelected:animated:像这样…
- (void)setSelected:(BOOL)selected animated:(BOOL)animated { [super setSelected:selected animated:animated]; // Configure the view for the selected state if (selected) { self.check.image = [UIImage imageNamed:@"1355327732_checkbox-checked"]; } else { self.check.image = nil; } }
那么你不必在tableView代码中做任何事情来改变这一点。 它会工作。
更好的select是保持self.check中的图像相同。 那么你可以将隐藏设置为YES或NO。 这也会更高性能。
为了让你从表中获得多个select,然后在TableViewController中放置…
self.tableView.allowsMultipleSelection = YES;
这将设置它,以便您可以select多行。 一个水龙头select,另一个水龙头取消select。
要获取选定的行,您可以运行…
NSArray *selectedRows = [self.tableView indexPathsForSelectedRows];
你为什么要在同一行上调用setImage和cell.check.image? 试试这个,看看结果是否一样。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { [tableView deselectRowAtIndexPath:indexPath animated:YES]; CustomCell *cell = (CustomCell *)[self.tableView cellForRowAtIndexPath:indexPath]; //cell.check.image = setImage:[UIImage imageNamed:@"1355327732_checkbox-checked"]; [cell.check setImage:[UIImage imageNamed:@"1355327732_checkbox-checked"]];
}
我注意到你的代码中有两个问题
1)这个代码:
cell.check.image= setImage:[UIImage imageNamed:@"1355327732_checkbox-checked"];
2)没有为图像提供扩展名
将其replace为:
cell.check.image= [UIImage imageNamed:@"1355327732_checkbox-checked.png"];