0

我有一个显示字符串数组的 tableView。但是我有第二个数组,我在(0 或 1)中有一个值。如果为 0,我想显示一个图像,文本为黑色,但如果为 1,我想显示第二个图像,文本为绿色。

我从解析下载的数组。那是有效的。但是当我点击一个单元格时没有任何反应,下面我显示我必须查看它是 1 还是 0 的代码。

if ([NSNumber numberWithInt:0] == [oneOrZeroArray objectAtIndex:indexPath.row])
{
cell.accessoryType = UITableViewCellAccessoryDetailDisclosureButton;
cell.textLabel.textColor = [UIColor darkTextColor];
cell.editingAccessoryType = UITableViewCellAccessoryDetailDisclosureButton;
cell.imageView.image = [UIImage imageNamed:@"noCheckMark.png"];
[oneOrZeroArray replaceObjectAtIndex:indexPath.row withObject:[NSNumber numberWithInt:1]];
}
else if ([NSNumber numberWithInt:1] == [oneOrZeroArray objectAtIndex:indexPath.row])
{
cell.accessoryType = UITableViewCellAccessoryDetailDisclosureButton;
cell.textLabel.textColor = [UIColor greenColor];
cell.editingAccessoryType = UITableViewCellAccessoryDetailDisclosureButton;
cell.imageView.image = [UIImage imageNamed:@"checkMark.png"];
[oneOrZeroArray replaceObjectAtIndex:indexPath.row withObject:[NSNumber numberWithInt:0]];
}

如果我单击一个单元格,则 NSLog 将显示应用程序从解析中下载数据时它所具有的数字,则该数组不会在单击时更新。

(后来的问题是当我点击一个单元格时上传新的数组项)

艾迪德:

好的,所以使用 didSelectRowAtIndexPath 中的代码可以正常工作。

tableView 单元格是如何出现的

如果您锁定图像,则单元格正在做某事但它不正确,如果我单击一个项目,它会更新另一个项目,然后像那样跳来跳去。我只是点击我在图片中描述的它,我不按任何其他单元格。

编辑2: 我失败了​​......

如果我移动:[oneOrZeroArray replaceObjectAtIndex:indexPath.row withObject:[NSNumber numberWithInt:0]]; 到 didSelectRowAtIndexPath 它可以工作 =)。

4

1 回答 1

0

你实现了 -tableView:didSelectRowAtIndexPath: 吗?你应该有类似的东西:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
if ([oneOrZeroArray[indexPath.row] intValue] == 0) {
    oneOrZeroArray[indexPath.row] = @1;
} else {
    oneOrZeroArray[indexPath.row] = @0;
}
[tableView reloadData];

}

于 2013-10-23T17:36:11.200 回答