• IOS--纯代码实现UICollectionView


    1.初始化一个UICollectionView

    @property (nonatomic, strong) UICollectionView *shareCollectionView;

    2.设置基本属性

    CGFloat itemWidth = (SCREEN_W - 40 ) / 4.5;
        CGFloat itemHeight = 100;
        UICollectionViewFlowLayout *shareflowLayout = [[UICollectionViewFlowLayout alloc] init];
        shareflowLayout.scrollDirection = UICollectionViewScrollDirectionHorizontal;
        shareflowLayout.sectionInset = UIEdgeInsetsMake(0, 0, 0, 15);
        shareflowLayout.itemSize =CGSizeMake(itemWidth, itemHeight);
        _shareCollectionView = [[UICollectionView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_W, 100) collectionViewLayout:shareflowLayout];
        _shareCollectionView.backgroundColor = [UIColor clearColor];
        [self.footView addSubview:_shareCollectionView];
        [_shareCollectionView registerClass:[HMShareCollectionViewCell class] forCellWithReuseIdentifier:@"cell"];
        _shareCollectionView.delaysContentTouches = NO;
        _shareCollectionView.delegate = self;
        _shareCollectionView.dataSource = self;
        _shareCollectionView.scrollEnabled = YES;
        _shareCollectionView.showsHorizontalScrollIndicator = NO;

    3.实现代理方法

    #pragma mark collectionView代理方法
    
    - (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView
    {
        return 1;
    }
    
    - (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
    {
       
         return _shareTypeArr.count;
        
    }
    
    - (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
    {
        HMShareCollectionViewCell *cell = (HMShareCollectionViewCell *)[collectionView dequeueReusableCellWithReuseIdentifier:@"cell" forIndexPath:indexPath];
        //设置数据
        
        return cell;
    }
    
    - (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath
    {
        NSLog(@"%@",indexPath);
        
    }

    4.cell的设置 .m

    - (instancetype)initWithFrame:(CGRect)frame
    {
        self = [super initWithFrame:frame];
        if (self) {
            //设置控件
        }
        return self;
    }

     

  • 相关阅读:
    android AudioManager AUDIOFOCUS
    uboot环境变量实现分析
    观察者模式总结
    【BZOJ3270】博物馆 概率DP 高斯消元
    从零開始学android<TabHost标签组件.二十九.>
    怎样在Web项目中的service业务层获取项目根路劲
    TexturePacker 算法
    [leetCode 75] Sort Colors
    无人车可能导致器官捐献者短缺以及吸烟率下降:4星|《无人驾驶,十万亿美元的大饼怎么分?》
    如何寻找颠覆式创新的机会,《创新者的窘境》作者二十年磨一剑:4星|《与运气竞争》
  • 原文地址:https://www.cnblogs.com/qiyiyifan/p/7305434.html
Copyright © 2020-2023  润新知