在表格中选择自定义单元格重复

时间:2014-09-17 11:36:20

标签: ios uitableview custom-cell

我正在使用自定义单元格,其中有一个按钮,在单击一个单元格时应该标记为已选中。但是当我单击一个单元格时,它会在表格中重复,例如。

细胞1

细胞2

细胞3

细胞4

细胞5

细胞6

单元格7(从1开始重复检查)

单元格8(从2重复检查)

这是我的代码。

    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;
{
    WIWNotificationViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"WIWNotificationViewCell" forIndexPath:indexPath];
    cell.notifySelected=NO;
    if (cell == nil)
    {
        cell = [[WIWNotificationViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"WIWNotificationViewCell"];
    }

    return cell;
}




    -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    WIWNotificationViewCell *cell = (WIWNotificationViewCell*)[tableView cellForRowAtIndexPath:indexPath];
    cell.selectionStyle = UITableViewCellSelectionStyleNone;

    if (cell.notifySelected==YES)
    {
        [cell.btnNotifyClicked setSelected:NO];
        cell.notifySelected=NO;
    } else
    {
        [cell.btnNotifyClicked setSelected:YES];
        cell.notifySelected=YES;
    }
}

WIWNotificationViewCell是一个自定义单元格,它包含要检查的btnNotifiedClicked。

1 个答案:

答案 0 :(得分:-1)

使用重用标识符获取单元格时,您所做的就是设置布尔值notifySelected。你还需要打电话

[cell.btnNotifyClicked setSelected:NO];
在cellForRowAtIndexPath中

,否则视图的状态不会更新,直到didSelectRowAtIndexPath