UITableView中对特定单元格的迭代

时间:2012-11-01 13:17:49

标签: ios

我在UITableView的单元格中有数据和图像。我想改变特定细胞的图像, 我有每个单元格的代码。

我无法找到迭代tableview for cell的方法。

这是我的tableview函数的快照。

- (UITableViewCell *)tableView:(UITableView *)tableView 
         cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    NSString *cellText = nil;

    NSArray *keys = [[[self packageItems] allKeys] 
                     sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)];
    cellText = [keys objectAtIndex:[indexPath row]];

    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[UITableViewCell alloc] 
                 initWithStyle:UITableViewCellStyleDefault
                 reuseIdentifier:CellIdentifier];
        [cell setAccessoryType:UITableViewCellAccessoryDisclosureIndicator];
    }
    cell.imageView.image=[UIImage imageNamed:@"checkbox.png"];
    //cell.imageView.image=[UIImage imageNamed:@"checkbox-checked.png"];

    return cell;
}

还有另一个功能,我想将单元格图像更改为cell.imageView.image = [UIImage imageNamed:@“checkbox-checked.png”];

- (void)OnAction
{
    static NSString *CellIdentifier = @"Cell";
    NSIndexPath *indexPath = [[NSIndexPath alloc] initWithIndex:0];
    UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath ];
    cell.imageView.image=[UIImage imageNamed:@"checkbox-checked.png"];

}

1 个答案:

答案 0 :(得分:0)

如果您不想在表视图中更改某些功能,则无需创建新单元格,只需修改实际单元格即可。只需在你的cellForRowAtIndexPath委托中创建条件:

if(indexPath == indexToModify) {
    cell.imageView.image=[UIImage imageNamed:@"checkbox-checked.png"];
} else {
    cell.imageView.image=[UIImage imageNamed:@"checkbox.png"];
}

并在你的 - (void)OnAction方法中最后使用:

[self.tableView reloadData];