代码之家  ›  专栏  ›  技术社区  ›  zpesk

自定义UITableViewCell变为空时出现问题?

  •  0
  • zpesk  · 技术社区  · 15 年前

    我有一个分组表视图,它使用两个不同的自定义表单元格。

    当我滚动浏览表格,使一个(或多个)单元格位于可见的上方或下方时,这些单元格变为空白。当我向上(或向下)滚动查看这些单元格时,它们仍然是空白的。为什么会这样?细胞在首次加载时显示了适当的内容。

    以下是在指定的indexpath处加载单元格的代码:

    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    {
    
        if(indexPath.section==0)
        {
            FMLFullTextCell = (FullTextCell *) [tableView dequeueReusableCellWithIdentifier:FullTextCell_ID];
            if(FMLFullTextCell==nil)
            {
                [[NSBundle mainBundle]loadNibNamed:@"FullTextCell" owner:self options:nil];
                [FMLFullTextCell initWithFMLText:@"Here is some demo fml text"];
            }
            return FMLFullTextCell;
        }
        else
        {
            FMLAuthorCell=(Author *)[tableView dequeueReusableCellWithIdentifier:AuthorCell_ID];
            if(FMLAuthorCell==nil)
            {
                [[NSBundle mainBundle]loadNibNamed:@"Author" owner:self options:nil];
                [FMLAuthorCell initWithTitle:@"Author" initWithAuthor:@"JohnnyAuthor"];
            }
            return FMLAuthorCell;
        }
    
    }
    
    1 回复  |  直到 15 年前
        1
  •  2
  •   rincewind    15 年前

    您提供的信息不足,无法回答此问题。

    通常,当通过 initWithFrame:reuseIdentifier: 并通过 dequeueReusableCellWithIdentifier: . 我的猜测是,您没有为两个不同的自定义表单元格指定不同的重用标识符,因为它们在代码中会以某种方式混淆。这可能导致所描述的行为。

    不管怎样,如果没有看到一些代码,这是很难回答的。你至少应该给我们看 tableView:cellForRowAtIndexPath 数据源的方法。