当前位置: 代码迷 >> 综合 >> storyboard使用collectionview
  详细解决方案

storyboard使用collectionview

热度:70   发布时间:2024-01-22 04:40:37.0

1.在使用storyboard创建页面时,关联类没有使用storyboard里面添加的uicollectionview时,自己单独自定义继承uicollectioncell(使用xib时)是无法使用的,只有重写initwithframe方法才能实现重用。

2.那种给每一个cell都注册一次重用cell时,会使重用失效,会去除重用,滑动会卡顿,但是不会有数据错乱问题

3.贴一段踩完坑的代码

#import "HomePageBelowCollectionViewCell.h"


#import <UIImageView+WebCache.h>


@implementation HomePageBelowCollectionViewCell


- (instancetype)initWithFrame:(CGRect)frame

{

    self = [superinitWithFrame:frame];

    if (self) {

        self.backImage = [[UIImageViewalloc]initWithFrame:self.contentView.bounds];

        [self.contentViewaddSubview:self.backImage];

        self.backImage.contentMode =UIViewContentModeScaleAspectFill;

        self.clipsToBounds =YES;

    }

    returnself;

}


/** 封装复用代码,方便调用*/

+ (id)getHomePageBelowCollectionViewCellWithCollectionView:(UICollectionView *)cellSuperCollectionView CellInfo:(MovierDCInterfaceSvc_VDCVideoLabelEx2 *)cellInfo CellIndex:(NSIndexPath *)cellIndex ResuableStr:(NSString *)resuableStr{

    if (resuableStr.length ==0) {

        resuableStr = @"belowResuableStr";

        [cellSuperCollectionView registerClass:[HomePageBelowCollectionViewCellclass]forCellWithReuseIdentifier:resuableStr];

    }

    

    HomePageBelowCollectionViewCell * cell = [cellSuperCollectionViewdequeueReusableCellWithReuseIdentifier:resuableStrforIndexPath:cellIndex];

    

    [cell.backImagesd_setImageWithURL:[NSURLURLWithString:cellInfo.szThumbnail]placeholderImage:DEFAULTVIDEOTHUMAILoptions:SDWebImageRetryFailed |SDWebImageRefreshCached];

    

    return cell;

}

@end