美文网首页
OC 瀑布流详解

OC 瀑布流详解

作者: SlashMan | 来源:发表于2016-10-20 10:40 被阅读0次

空余时间整理了一下瀑布流的代码,今天总结一下,也说一下个人对于写瀑布流的理解。


先说一下大致思路。

一、写瀑布流实际上就是重新定义UICollectionViewLayout

Layout类中,有3个方法是必定会被依次调用:

prepareLayout: 准备所有view的layoutAttribute信息

collectionViewContentSize: 计算contentsize,显然这一步得在prepare之后进行

layoutAttributesForElementsInRect: 返回在可见区域的view的layoutAttribute信息

二、如果需要传入列数、行间距、列间距、离边缘距离的话需要定义属性或者通过代理传值。


以上是简单的思路,下面上代码。

1、新建一个类,继承UICollectionViewLayout.然后定义几个想要自定义的数值。

下面是.h中的代码,有想要自定义的属性和解释

2、我又定义了几个默认值和一些需要的装一些值的数组

同时写了数组的懒加载

3、 重头戏来了下面几个是核心部分了

首先是

- (void)prepareLayout;

这里面我只写了第一区间的cell,各位要是有兴趣可以尝试全部区间的,授人以鱼不如授人以渔嘛

然后就是

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

这里面主要是计算出对应cell的frame,然后返回。计算的方法千变万化,根据需求计算出合理的frame就行,下面是我的一种简单的计算方法

最后就是返回cell属性数组和可见区域的view的layoutAttribute信息

以上只是个人见解,有错误之处还希望指出!

相关文章

  • OC 瀑布流详解

    空余时间整理了一下瀑布流的代码,今天总结一下,也说一下个人对于写瀑布流的理解。 先说一下大致思路。 一、写瀑布流实...

  • oc通用瀑布流封装

    用途:现在许多的app首页展示基本都是瀑布流,电商的尤其常见 思路:瀑布流肯定是用collection view去...

  • 2018-06-21 项目2:实现UICollectionVie

    一.项目需求 二.实现列表 本次列表展示参考博客为ios - 用UICollectionView实现瀑布流详解具体...

  • 利用scrollView实现瀑布流 Swift3.0

    Origin blog 以前在网上看到过(自己也实现过)使用oc写的基于scrollView实现的瀑布流,现在自己...

  • iOS动画详解

    iOS动画详解 例子的Demo地址(OC版):exampleForAnimation_OC

  • 瀑布流(Swift版和OC版)

    原理分析 : 啥叫瀑布流?就是每次加载出来的cell(或者叫item)都是放到最短的那行,像瀑布流水一样出现,其关...

  • MG--OC和Swift的瀑布流布局

    瀑布流(OC和Swift)算封装的比较好。提供接口,只需要成为MGWaterFlayout的代理,即可在外界设置那...

  • Swift常用开发笔记

    记得在学习oc的时候,看到过一个CollectionView实现的瀑布流的项目,从网络加载图片,用SDWebIma...

  • swift+CollectionView瀑布流

    记得在学习OC的时候,看到过一个CollectionView实现的瀑布流的项目,从网络加载图片,用SDWebIma...

  • 瀑布流

    瀑布流(OC)算封装的比较好。提供接口,只需要成为MGWaterFlayout的代理,即可在外界设置那个cell的...

网友评论

      本文标题:OC 瀑布流详解

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