iOS UICollectionView自定义不规则布局与多选实现
iOS 的 UICollectionView 布局能力是真的强,但默认的UICollectionViewFlowLayout
就有点太“规矩”了。要是你想做那种每个 cell 大小不一样、位置不规则、还能多选的那种展示方式,那就得自己动手整一个自定义 UICollectionViewLayout。
自定义布局的核心是继承UICollectionViewLayout
,你可以自由决定 cell 怎么排、排多大。比如高度要根据内容自动调整,那就需要在prepare()
里动态算每个 cell 的尺寸。
要支持多选功能呢,其实 UICollectionView 是支持的,但默认样式挺简陋。你可以用didSelectItemAt
这些 delegate 方法配合加个“✔”的选中图标,搞出更友好的交互体验。如果想记住用户的选择,还可以用NSUserDefaults
存索引路径。
对性能有点要求的注意咯,大数据量下别傻乎乎每次都全量刷新,用invalidationContext
来控制只更新你想更新的部分,效率能高不少。动画也别忘了,可以加点finalizeCollectionViewUpdates
来自定义插入/删除的效果,看起来更丝滑。
哦对了,调试阶段推荐你打开 Xcode 里的View Hierarchy Debugger,布局不对一眼就能看出来,定位问题快。
如果你是那种喜欢折腾 UI,追求灵活布局的开发者,强烈建议深入玩一下自定义 UICollectionViewLayout,真的是提升界面表现力的利器。
169.92KB
文件大小:
评论区