我的tableview出了问题。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
[tableView deselectRowAtIndexPath:indexPath animated:YES];
UITableViewCell *tableCell = [tableView cellForRowAtIndexPath:indexPath];
BOOL isSelected = (tableCell.accessoryView = [[ UIImageView alloc ] initWithImage:[UIImage imageNamed:@"Checkmark-hvid"]]);
if (isSelected) {
tableCell.accessoryType = UITableViewCellAccessoryNone;
}
else {
tableCell.accessoryView = [[ UIImageView alloc ]
initWithImage:[UIImage imageNamed:@"Checkmark-hvid"]];
}
}
问题是我无法定义BOOL被选为评估视图(图像)。
如果有人知道答案,请帮助我!
答案 0 :(得分:0)
在此声明中:
BOOL isSelected = (tableCell.accessoryView = [[ UIImageView alloc ] initWithImage:[UIImage imageNamed:@"Checkmark-hvid"]]);
(tableCell.accessoryView = ...
的类型是UIView *
,这就是编译器所抱怨的。要将其转换为BOOL
,请执行以下操作:
BOOL isSelected = (tableCell.accessoryView = [[ UIImageView alloc ] initWithImage:[UIImage imageNamed:@"Checkmark-hvid"]]) != nil;
(注意与nil
的比较,这会导致布尔条件。)
但是,您的所有代码看起来都有些狡猾,因为我希望alloc/init
始终成功,因此isSelected
始终为YES
。