时间:2021-05-20
前言
API 不熟悉导致的问题,想当然的去理解果然会出问题,这里记录一下 UICollectionView 使用问题。
正文
陷阱一:minimumLineSpacing、minimumInteritemSpacing
很容易就把这两个属性设置为 0 ,这两个属性是最小行间距和最小列间距,注意是最小!!也就是说实际上可以 > 0 ,并不是间距就是 0
陷阱二:sectionInset
设置 cell 的边距。一开始我以为是每一个 cell 的边距,相邻之间会叠加效果,实际上并不是这样的,这个属性只是保证相邻之间的间距,并不叠加!!
理解了上面两个陷阱,我们就可以精确计算 Cell 的大小了,再来设置 itemSize 的大小才会正确。例如:
let ITEM_MIN_WIDTH: CGFloat = 300 let ITEM_SPACING: CGFloat = 6 func resizeCollectionView(size: CGSize) { if let layout = collectionView?.collectionViewLayout as? UICollectionViewFlowLayout { layout.minimumLineSpacing = ITEM_SPACING layout.minimumInteritemSpacing = ITEM_SPACING var itemCount = Int(size.width / ITEM_MIN_WIDTH) if itemCount == 0 { itemCount = 1 } if itemCount == 1 { layout.itemSize = CGSizeMake(size.width, size.width * 10 / 16) layout.sectionInset = UIEdgeInsetsMake(6, 0, 0, 0) } else { let width = (size.width - CGFloat((itemCount + 1)) * ITEM_SPACING) / CGFloat(itemCount) layout.itemSize = CGSizeMake(width, width * 10 / 16) layout.sectionInset = UIEdgeInsetsMake(ITEM_SPACING, ITEM_SPACING, 0, ITEM_SPACING) } collectionView?.layoutIfNeeded() } }代码说明:
传入当前 view 的 size ,动态计算 cell 大小,可以方便的适配 iPhone/iPad ,单列时隐藏两边边距,多列时显示两边间隙。
以上就是对IOS UICollectionView 用法和说明,希望能帮助IOS开发的朋友。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
下面为大家介绍ios7.0.4越狱后计算器闪退解决方法,共有3种方法能够解决ios7.0.4完美越狱计算器闪退故障,大家想知道方法吗?遇到此问题的朋友每种都
IOS开发之实现取消tableView返回时cell选中的问题在对表格UITableView操作时,有时当用户选中表格行后,需要自动取消选择。实现这种效果,其原
在做相册的时候遇到了一个问题,就是UICollectionView刷新的时候会闪屏,网上搜了搜,解决的方法也是挺多,并没有一一尝试,只是存下来做个笔记,来看看遇
IOS中计算缓存文件的大小判断实例详解IOS中计算缓存文件的大小判断,在这里分享一下自己的心得,希望和大家一起分享技术,如果有什么不足,还请大家指正。写出这篇目
复制代码代码如下:未知大小图片在已知大小容器水平/垂直居中.box{display:table-cell;vert