UICollectionViewCell:滚动时更改单元格

时间:2014-06-24 10:37:31

标签: ios iphone objective-c collections

我遇到UICollectionView的问题。我将原始单元格存储在实例变量中。检查以下代码。

originalCell = (CollectionViewCell *)[_colloctionView cellForItemAtIndexPath:dragIndexPath];
   NSLog(@"Main Cell %@",originalCell);

控制台O / P

  Main Cell <CollectionViewCell: 0xdae4fc0; baseClass =
 UICollectionViewCell; frame = (216.5 30; 95 113); clipsToBounds = YES;
 alpha = 0.3; opaque = NO; tag = 3; layer = <CALayer: 0xdae5070>>

现在我正在滚动然后检查单元格对象。它给了我那样的感觉。

控制台O / P

  ENd <CollectionViewCell: 0xdae4fc0; baseClass = UICollectionViewCell;
 frame = (112.5 548.5; 95 113); clipsToBounds = YES; opaque = NO; tag =
 8; layer = <CALayer: 0xdae5070>>

正如您所见,对象值现在已更改。我认为这是 reauseablity 的问题。

但我怎样才能以简单的方式解决这个问题。 感谢

1 个答案:

答案 0 :(得分:0)

是的,是细胞可重用性问题,尝试创建像这样的细胞标识符。它会起作用。

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

    if (!cell) {
        cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier];
    }

如果您使用自定义单元格,则单元格创建代码将相应更改。