OC-创建瀑布流

Posted iOS学习-文

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OC-创建瀑布流相关的知识,希望对你有一定的参考价值。

 

1. 创建“WYWaterflowLayout”继承制  “UICollectionViewLayout”。

2. 在“ViewController” 中导入“WYWaterflowLayout”类。并创建,创建的代码如下

@property (nonatomic,weak) UICollectionView *collectionView;

- (void)CircleLayout
{
    WYWaterflowLayout *layout = [[WYWaterflowLayout alloc] init];
      
    // 创建CollectionView
    UICollectionView *collectionView = [[UICollectionView alloc] initWithFrame:self.view.bounds collectionViewLayout:layout];
    collectionView.dataSource = self;
    collectionView.backgroundColor = [UIColor whiteColor];
    [self.view addSubview:collectionView];
    
    self.collectionView = collectionView;
    
    // 使用系统自带的类注册
   // [collectionView registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:WYShopID];
    
    // 使用自定义类注册
    [collectionView registerNib:[UINib nibWithNibName:NSStringFromClass([XMGShopCell class]) bundle:nil] forCellWithReuseIdentifier:WYShopID];
}

 

3. 数据源<UICollectionViewDataSource>

- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
{
    self.collectionView.footer.hidden = self.shops.count == 0;
    return self.shops.count;
}
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{

    XMGShopCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:WYShopID forIndexPath:indexPath];
    XMGShop *shopses = self.shops[indexPath.item];
    cell.shop = shopses;
    
    return cell;
}

4. 写 “WYWaterflowLayout”的方法,这四个类是必须要写的。

// 初始化

- (void)prepareLayout;

// 决定cell的排布

- (NSArray<UICollectionViewLayoutAttributes *> *)layoutAttributesForElementsInRect:(CGRect)rect;

// 返回indexPath位置cell对应的布局属性

- (UICollectionViewLayoutAttributes *)layoutAttributesForItemAtIndexPath:(NSIndexPath *)indexPath;

- (CGSize)collectionViewContentSize

 

以上是关于OC-创建瀑布流的主要内容,如果未能解决你的问题,请参考以下文章

OC-UICollectionView实现瀑布流

UICollectionView瀑布流的实现原理(转)

网页设计之瀑布流,排列图片img最好的方式之一代码+注释=很详细!!!

两种方式实现瀑布流

使用masonry创建瀑布流,图片加载导致渲染重叠解决方案

wordpress制作照片瀑布流的效果,如何实现?