UICollectionViewCell重用注意要点(解决视图重叠问题)

本文介绍了在使用UICollectionView时遇到的常见问题,特别是cell重用导致的视图重叠问题。首先,讲解了UICollectionView的基础设置,包括创建UICollectionViewFlowLayout和注册cell。接着,重点讨论了cell重用策略,提供了避免视图重叠的解决方案。同时,提到了UICollectionView的布局、数据源、委托方法以及与UITableView的区别。最后,强调了自定义UICollectionViewLayout的重要性及其在提升用户体验上的潜力。
摘要由CSDN通过智能技术生成

刚接触√,总会遇到很多莫名其妙的困难,

最容易造成bug的是,我总以为UICollectionView和UITableView是差不多的,就先入为主基本就照抄uitableview的东西去做,以为只是把几个数据源方法和代理方法改个名字而已,这就是bug不断的根源!!

第一个问题:起码要显示点东西吧:

    创建UICollectionViewFlowLayout并注册! 跟uitableview第一个不同就在这里,UICollectionView需要一个layout和为cell注册一个类才能显示出东西。。。。

  UICollectionViewFlowLayout *flowLayout= [[UICollectionViewFlowLayoutalloc]init];

    self.myUICollectionView = [[UICollectionView alloc]initWithFrame:CGRectMake(0,45,self.view.frame.size.width,self.view.frame.size.height-44collectionViewLayout:flowLayout];

    self.myUICollectionView.backgroundColor = [UIColor whiteColor];

    [self.myUICollectionView registerClass:[ClassifiListCell1 class] forCellWithReuseIdentifier:@"myUICollectionViewCell"];

    self.myUICollectionView.delegate = self;

    self.myUICollectionView.dataSource = self;

    [self.viewaddSubview:self.myUICollectionView];

这样,起码终于可以显示东西了,不容易。。。要注意的是,ClassifiListCell1是自定义的UICollectionViewCell;


第二个问题:重点!!cell重用时视图重叠!!!

   数据表较多的话,当然,必须得重用cell,正常实现其他数据源方法,最重要的是以下方法:

 NSUInteger row = [indexPathrow];

    ClassifiListCell1 * cell = (ClassifiListCell1 *)[collectionViewdequeueReusableCellWithReuseIdentifier:@"myUICollectionViewCell"forIndexPath:indexPath];

   if (!cell) {

        cell = [[ClassifiListCell1alloc] initWithFrame:CGRectMake(0,0, 145, 200)];

    }

   if ([_commodity_listcount]>=row) {

       NSDictionary *dict =[_commodity_listobjectAtIndex:row];

       Classifi *merc = [[Classifialloc] init];

        [mercsetJson:dict];

        [cellsetCellContent:merc];

    }

    

   return cell;


}

其中[cell setCellContent:merc];是设置cell的视图,上面有图片和uitextfield等,如此倒弄一番,终于看到自己自定义的正常视图了,虽然位置还没调好,但毕竟这不是重点!!

file:///Users/maobai/Desktop/1234.png

额。。。。不能插入图片,就算了,,,意思就是正常看到视图了! 但当我上下滑动视图的时候,问题来了,cell里面的东西一层层的重叠,惨不忍睹!

在网上找了很多方法和注意的要点:
其中,注册&
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值