ios-自定义UICollectionViewFlowLayout

我们应该都知道tableView和collectionView用的都是比较多的,其实tableView的布局是固定的,但是collectionView的布局我们是可以进行自定义的,比如说我们可以自定义流水布局也就是UICollectionViewFlowLayout,当然也可以自定义UICollectionViewLayout。

下面我们介绍下自定义流水布局内部常用方法

只要显示的边界发生了改变就会进行重新布局:内部会重新调用prepareLayout和layoutAttributesForElementsInRect方法获得所有cell的布局属性

- (BOOL)shouldInvalidateLayoutForBoundsChange:(CGRect)newBounds
{
    return YES;
}
准备布局的方法,在此之前collectionView已经初始化完成

- (void)prepareLayout
{

}

返回每个cell的尺寸的方法

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

}

proposedContentOffset为系统期望滑动到的位置,velocity为加速度,可以通过这两个参数以及当前所在的位置计算出你希望它滑动到的位置,可以用来设置collectionView停止滚动那一刻的位置

- (CGPoint)targetContentOffsetForProposedContentOffset:(CGPoint)proposedContentOffset withScrollingVelocity:(CGPoint)velocity
{

}

结合这几个方法就可以做出下面的效果,可以做出相册图片浏览的效果



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值