2011-11-09 46 views
0

我有一个UITableView,当单元格与其他单元格具有相同的内容时,此内容仅出现在绘制的las单元格中。我的自定义单元格添加了UIView属性以添加其他类的动态子视图。UITableViewCell在其他单元格中丢失重复的内容

- (UITableViewCell *)tableView:(UITableView *)tableView 
    cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    static NSString *MyIdentifier = @"cell"; 

    CollectionCell *cell = (CollectionCell *)[tableView 
         dequeueReusableCellWithIdentifier:MyIdentifier]; 
    if (!cell) { 
     cell = [[[CollectionCell alloc] initWithStyle:UITableViewCellStyleSubtitle 
            reuseIdentifier:MyIdentifier] 
       autorelease]; 
    } 

    [cell setCollectionView:/* Generated view in other class */]; 

    return cell; 
} 

具体问题是:

我的动态视图是通过由例如,2个UILabels:

  • 如果标签1是一个标题,所述标题是用于每一行唯一的 - >没问题,呈现很好。
  • 如果标签2是一个类别,则从0到5的索引具有相同的类别 - >仅索引5处的行显示类别标签。

我不能在单元实例化中创建这个标签并添加为子视图,因为单元格内容都是动态的。

感谢您的时间和帮助。

UPDATE:

我不能创建在单元格实例化这个标签,并添加为子视图因为细胞含量是所有动态。

我会详细解释一下:

加入的CollectionView财产的内容和UI控件可以differentes每次执行。在一个执行collectionView中可以有一个UIImageView和一个UILabel,然后执行它有2个UILabels(例如)。这就是为什么我不能创建这样的东西

if (!cell) { 
     cell = [[[CollectionCell alloc] initWithStyle:UITableViewCellStyleSubtitle 
            reuseIdentifier:MyIdentifier] 
       autorelease]; 

     UILabel *foo = [[UILabel alloc] initWithFrame:SomeFrame]; 
     [foo setTag:101]; 
     [cell.collectionView addSubview:foo]; 
    } 

    UILabel *foo = [cell.collectionView subviewWithTag:101]; 
    [foo setTitle:@"This content is dynamic"]; 

谢谢!

更新2:

似乎与自定义的UILabel子类的问题。如果我使用原始UILabel来显示字符串正常工作。

+0

“我不能创建在细胞实例化这个标签,并添加为子视图因为细胞含量是所有动态。”请在此展开,并显示您设置为收集视图的内容。 cellForRowAtIndex路径_is_是设置动态内容的地方。 – jrturton

回答

0

你不应该添加的块级

if (!cell) { 
     cell = [[[CollectionCell alloc] initWithStyle:UITableViewCellStyleSubtitle 
            reuseIdentifier:MyIdentifier] 
       autorelease]; 
} 

你的子视图应该仅此块中加入(第一次创建可重复使用的细胞)外的子视图。

当您上下滚动表格时,此'if'块会发生多次(这之后)发生的所有事情,这样您就可以在其中编辑添加的子视图(仅在整个'if块之后,在它之外)。

见我的回答here

+1

是的我知道,但这对我无效,因为添加的子视图在每次执行或不同的单元格中具有不同的UI控件和内容,并且它们在运行时定义:( –

+0

请参阅我的编辑... –

+0

对不起,它不工作。显示相同的行为,我怀疑UITableView工作正常,问题是与生成视图的引用...新内容隐藏旧内容...我不知道。 –

相关问题