检查时更改单元格的图像

时间:2011-12-29 09:57:56

标签: iphone uitableview ios5

在我的UITableView中,我需要获取用户的事件,因此当选择(检查)单元格时,我放置btn_checked.png,当它取消选中时,我放置btn_unchecked.png

我想,我尝试做的应该是didSelectRowAtIndexPath方法,所以这是我的代码:

- (void)tableView:(UITableView *)tableView
didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

    NSArray *listData =[self->tableContents objectForKey:

    [self->sortedKeys objectAtIndex:[indexPath section]]];

    UITableViewCell* theCell = [tableView cellForRowAtIndexPath:indexPath];

    UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage    imageNamed:@"btn_unchecked.png"]];

    theCell.accessoryView = imageView;    
}

我的代码段不起作用,因此在检查行时不会放置btw_unchecked.png,同样,我需要检查/取消选中事件以将正确的图像放到正确的事件中。 提前完成。

2 个答案:

答案 0 :(得分:1)

例如,此代码段将在单击单元格时切换单元格的复选标记。该模式是在调用委托方法时强制从表的数据源中选择性重新加载。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    // Dequeue the cell... then:
    static NSString *CellIdentifier = @"tvcOEList";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
    }
    cell.accessoryType = (cell.accessoryType == UITableViewCellAccessoryNone) ? UITableViewCellAccessoryCheckmark : UITableViewCellAccessoryNone;
    return cell;
}

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    [self.tableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:YES];
}

答案 1 :(得分:-1)

您可以使用以下代码。

[cell.contentView addSubview:imageView];

我希望这会对你有帮助..