美文网首页iOS
iOS:UICollectionView如何横向滚动

iOS:UICollectionView如何横向滚动

作者: IMKel | 来源:发表于2016-12-13 19:43 被阅读2768次
    • 这是最最基本的UICollectionView横向滚动的教学,代码很少,全在viewController.m里面编写,代码如下:
    #import "ViewController.h"
    
    static NSString *cellID = @"cell";
    
    @interface ViewController ()<UICollectionViewDataSource, UICollectionViewDelegate>
    @property(nonatomic, strong) UICollectionView *myCollectionView;
    @end
    
    @implementation ViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        
        CGRect collectionViewFrame= CGRectMake(0, 20, [UIScreen mainScreen].bounds.size.width, 100);
        
        UICollectionViewFlowLayout *flowLayout = [[UICollectionViewFlowLayout alloc] init];
        // 设置UICollectionView为横向滚动
        flowLayout.scrollDirection = UICollectionViewScrollDirectionHorizontal;
        // 每一行cell之间的间距
        flowLayout.minimumLineSpacing = 50;
         // 每一列cell之间的间距
         // flowLayout.minimumInteritemSpacing = 10;
        // 设置第一个cell和最后一个cell,与父控件之间的间距
        flowLayout.sectionInset = UIEdgeInsetsMake(0, 20, 0, 20);
        
        //    flowLayout.minimumLineSpacing = 1;// 根据需要编写
        //    flowLayout.minimumInteritemSpacing = 1;// 根据需要编写
        //    flowLayout.itemSize = CGSizeMake(70, 70);// 该行代码就算不写,item也会有默认尺寸
        UICollectionView *collectionView = [[UICollectionView alloc] initWithFrame:collectionViewFrame collectionViewLayout:flowLayout];
        collectionView.backgroundColor = [UIColor redColor];
        collectionView.dataSource = self;
        collectionView.delegate = self;
        _myCollectionView = collectionView;
        [self.view addSubview:collectionView];
        
        [self.myCollectionView registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:cellID];
        
    }
    
    - (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section {
        
        return 15;
    }
    
    
    - (__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
        
        UICollectionViewCell *cell =  [collectionView dequeueReusableCellWithReuseIdentifier:cellID forIndexPath:indexPath];
        if (!cell ) {
            NSLog(@"cell为空,创建cell");
            cell = [[UICollectionViewCell alloc] init];
        }
        cell.backgroundColor = [UIColor yellowColor];
        return cell;
    }
    
    @end
    
    • 效果图如下:
    Snip20161213_75.png

    相关文章

      网友评论

      • 啊哈哈哈哈哈群:楼主 你写的这个滑动是只有一个section的情况下才可以使用,而实际开发中如果有横向滑动的需求 都是某个section的滑动 ,所以感觉这样写很鸡肋。
        赳赳赴渔洲:不是很明白你的意思,我觉得可以在不同的组中创建不同的collectionView对象。复杂的表视图上面可能会放很多个scrollview,或者collectionView,或者tableView

      本文标题:iOS:UICollectionView如何横向滚动

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