iPhone在Uitableview单元格中隐藏/显示标签

时间:2012-12-13 08:01:23

标签: iphone

我在点击一个细胞时正在扩大细胞。 现在我想隐藏旧标签,需要添加新标签。

在隐藏单元格内容时,它会隐藏每个可重用单元格中的内容。 (就像选择单元格1一样,我想隐藏旧标签并显示单元格1的新标签,但它会隐藏1,6,11行的标签。)

我无法找到解决方案。

我正在使用此代码

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

        BOOL isSelected = ![self cellIsSelected:indexPath];

        // Store cell 'selected' state keyed on indexPath
        NSNumber *selectedIndex = [NSNumber numberWithBool:isSelected];
        [selectedIndexes setObject:selectedIndex forKey:indexPath];        

        [self.newsTableview beginUpdates];

        UITableViewCell *tableviewCell = [tableView cellForRowAtIndexPath:indexPath];
        UITextView *textView = (UITextView *)[tableviewCell.contentView viewWithTag:101];
        UILabel *label = (UILabel *)[tableviewCell.contentView viewWithTag:100];
        UIImageView *imageView1 = (UIImageView *)[tableviewCell.contentView viewWithTag:102];

         if([self cellIsSelected:indexPath])
         {          
             label.hidden = YES;
             imageView1.hidden = YES;
             textView.hidden = YES;           
         }        

        [self.newsTableview endUpdates];                       


    // Deselect cell
    [tableView deselectRowAtIndexPath:indexPath animated:TRUE];
}

请帮忙.. 提前致谢

3 个答案:

答案 0 :(得分:1)

dequeueReusableCellWithIdentifier用于nil,如下所述

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:nil];

或指定不同的标识符如下...

   NSString *CellIdentifier =[NSString stringWithFormat:@"%d%d",indexPath.section,indexPath.row];
 UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

答案 1 :(得分:0)

static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:CellIdentifier];

我认为你只使用一个像这样的Cell Identifier。当你改变某些东西时,它会影响所有这些。尝试使用不同的标识符。

答案 2 :(得分:0)

我可以使用Paras建议修复它:

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:nil];