美文网首页
UICollectionView 使用遇到的小问题记录

UICollectionView 使用遇到的小问题记录

作者: xyZHua | 来源:发表于2021-05-06 09:50 被阅读0次

    应用场景:在自定义的UItableviewcell 中使用 UICollectionView
    遇到问题:UICollectionViewCell 的代理方法不调用
    问题原因:初始化UICollectionView 时的位置不对
    // 错误的写法

    -(instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
        self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
        if(self) {
        // collecitonView 代理及注册
        // 子页面配置
            [self initSubViews];
            self.selectionStyle = UITableViewCellSelectionStyleNone;
             _photoCollectionView.delegate = self;
        _photoCollectionView.dataSource = self;
        [_photoCollectionView registerNib:[UINib nibWithNibName:@"PhotoCollectionCell" bundle:nil] forCellWithReuseIdentifier:phCollectionIdentifer];
        }
        return self;
    }
    
    -(void)initSubViews {
    UICollectionViewFlowLayout *flowLayout = [[UICollectionViewFlowLayout alloc] init];
            [flowLayout setScrollDirection:UICollectionViewScrollDirectionVertical];
        
        _photoCollectionView = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:flowLayout];
    [self.contentView addSubview:_photoCollectionView ];
    }
    

    正确的写法:

    -(instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
        self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
        if(self) {
        // collecitonView 代理及注册
        // 子页面配置
            [self initSubViews];
            self.selectionStyle = UITableViewCellSelectionStyleNone;
        }
        return self;
    }
    -(void)initSubViews {
    UICollectionViewFlowLayout *flowLayout = [[UICollectionViewFlowLayout alloc] init];
            [flowLayout setScrollDirection:UICollectionViewScrollDirectionVertical];
        
        _photoCollectionView = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:flowLayout];
     _photoCollectionView.delegate = self;
        _photoCollectionView.dataSource = self;
        [_photoCollectionView registerNib:[UINib nibWithNibName:@"PhotoCollectionCell" bundle:nil] forCellWithReuseIdentifier:phCollectionIdentifer];
    [self.contentView addSubview:_photoCollectionView ];
    }
    
    

    相关文章

      网友评论

          本文标题:UICollectionView 使用遇到的小问题记录

          本文链接:https://www.haomeiwen.com/subject/fmmrdltx.html