iOS 解決UICollectionView 計(jì)算 Cell 大小的問題
前言
API 不熟悉導(dǎo)致的問題,想當(dāng)然的去理解果然會(huì)出問題,這里記錄一下 UICollectionView 使用問題。
正文
陷阱一:minimumLineSpacing、minimumInteritemSpacing
很容易就把這兩個(gè)屬性設(shè)置為 0 ,這兩個(gè)屬性是最小行間距和最小列間距,注意是最?。?!也就是說實(shí)際上可以 > 0 ,并不是間距就是 0
陷阱二:sectionInset
設(shè)置 cell 的邊距。一開始我以為是每一個(gè) cell 的邊距,相鄰之間會(huì)疊加效果,實(shí)際上并不是這樣的,這個(gè)屬性只是保證相鄰之間的間距,并不疊加??!
理解了上面兩個(gè)陷阱,我們就可以精確計(jì)算 Cell 的大小了,再來設(shè)置 itemSize 的大小才會(huì)正確。例如:
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()
}
}
代碼說明:
傳入當(dāng)前 view 的 size ,動(dòng)態(tài)計(jì)算 cell 大小,可以方便的適配 iPhone/iPad ,單列時(shí)隱藏兩邊邊距,多列時(shí)顯示兩邊間隙。
以上就是對(duì)IOS UICollectionView 用法和說明,希望能幫助 IOS開發(fā)的朋友。
- IOS Xib控件拖拽與頁(yè)面跳轉(zhuǎn)實(shí)例
- iOS實(shí)現(xiàn)百度地圖拖拽后更新位置以及反編碼
- 淺談iOS11新特性:新增拖拽交互體驗(yàn)
- Android ReboundScrollView仿IOS拖拽回彈效果
- IOS使用UICollectionView實(shí)現(xiàn)無限輪播效果
- IOS 自定義UICollectionView的頭視圖或者尾視圖UICollectionReusableView
- iOS應(yīng)用中UICollectionViewCell定制Button
- IOS簡(jiǎn)單實(shí)現(xiàn)瀑布流UICollectionView
- iOS中關(guān)于Swift UICollectionView橫向分頁(yè)的問題
- iOS開發(fā)UICollectionView實(shí)現(xiàn)拖拽效果
相關(guān)文章
iOS發(fā)送驗(yàn)證碼倒計(jì)時(shí)應(yīng)用
點(diǎn)擊發(fā)送驗(yàn)證碼button。倒計(jì)時(shí)開始,這篇文章就為大家詳細(xì)介紹了iOS發(fā)送驗(yàn)證碼倒計(jì)時(shí)應(yīng)用的實(shí)現(xiàn)方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-12-12
iOS設(shè)計(jì)模式——Category簡(jiǎn)單介紹
這篇文章主要介紹了iOS設(shè)計(jì)模式——Category簡(jiǎn)單介紹,有興趣學(xué)習(xí)的同學(xué)可以了解一下。2016-11-11
iOS Tabbar中間添加凸起可旋轉(zhuǎn)按鈕功能
最近的項(xiàng)目中有需求在tabbar中間添加凸起按鈕,并且點(diǎn)擊時(shí)按鈕要旋轉(zhuǎn),看了仿斗魚的凸起,點(diǎn)擊后是present出來View,這篇文章主要介紹了iOS Tabbar中間添加凸起可旋轉(zhuǎn)按鈕,需要的朋友可以參考下2017-12-12
iOS 高效的分頁(yè)加載實(shí)現(xiàn)示例
本篇文章主要介紹了iOS 高效的分頁(yè)加載實(shí)現(xiàn)示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-10-10

