CollectionView缩放水平卡片布局

简介:

概述

本篇一起来学习如何使用UICollectionView来实现水平滚动的缩放式卡片布局,就像Nice App中的卡片布局。

前一篇中讲了如何实现CollectionView旋转水平卡片布局,如果还没有阅读过,不防先看看再继续往下阅读。

实现效果

image

实现思路

从Demo效果图中,可以看出来,主要是缩放系数的计算。对于不同距离的cell,其缩放系数要变化,以便整体协调显示。

所以,我们必须重写-layoutAttributesForElementsInRect:方法来实现所有当前可见的cell的attributes。

计算比例,通过获取当前偏移rect的最小坐标x,再与atribute的中心x相减,再除以高度,就是高度的缩放倍数scaleForDistance。

最后,通过一个公式来计算缩放的Y系数。公式为:

scaleFactor因子可以自由调整,值越大,显示就越大。

核心代码

实现pagingEnabled的样式

这里是以1/3.0为分界,左、右的1/3作为分界线,超过才会切换过去!

感谢

感谢评论的朋友们的一句话,点醒了笔者。对于不分页的情况下,其实只要使用当前的偏移x除(itemSize.width + minimumLineSpacing)就得到一个倍数,然后四舍五入。比如,4.3取整得到4,那么就是没有超过一半,就要往回滚。而4.6取整得到5,表示要滚动到下一个。所以在不分页的情况下,其实也是非常简单的。

结尾

本篇文章经过朋友们的评论及反馈,可以说已经完善了!

目录
相关文章
|
7月前
横向滑块
横向滑块
79 7
|
UED 容器
如何实现侧边两栏宽度固定,中间栏宽度自适应的布局?——双飞翼布局、圣杯(Holy Grails)布局
如何实现侧边两栏宽度固定,中间栏宽度自适应的布局?——双飞翼布局、圣杯(Holy Grails)布局
84 0
|
前端开发 容器
Grid实现自适应九宫格布局
Grid实现自适应九宫格布局
332 0
RecyclerView 实现纵向,横向,和瀑布流 的滚动布局
RecyclerView 实现纵向,横向,和瀑布流 的滚动布局
RecyclerView 实现纵向,横向,和瀑布流 的滚动布局
|
C#
C#中,让按钮文字垂直水平都居中
C#中,让按钮文字垂直水平都居中
156 0
SwiftUI—创建一个水平方向上的滚动视图
SwiftUI—创建一个水平方向上的滚动视图
205 0
SwiftUI—创建一个水平方向上的滚动视图
UITableViewCell布局里面文字的自适应
UITableViewCell布局里面文字的自适应
166 0
UITableViewCell布局里面文字的自适应
|
iOS开发 索引
iOS流布局UICollectionView系列六——将布局从平面应用到空间
iOS流布局UICollectionView系列六——将布局从平面应用到空间
321 0
iOS流布局UICollectionView系列六——将布局从平面应用到空间
|
存储 iOS开发
iOS流布局UICollectionView系列五——圆环布局的实现
iOS流布局UICollectionView系列五——圆环布局的实现
291 0
iOS流布局UICollectionView系列五——圆环布局的实现
|
iOS开发
iOS流布局UICollectionView系列六——将布局从平面应用到空间(二)
iOS流布局UICollectionView系列六——将布局从平面应用到空间
187 0