轉(zhuǎn)載:http://wanqingwong.com/2015/04/30/ios-collection-1.html
UICollectionView將內(nèi)容顯示于一個(gè)一個(gè)的網(wǎng)絡(luò)之中米愿,對(duì)于展于一些屬性相似的內(nèi)容挺有用的媒鼓。在用法上有些類似于UITableView蛇更。
在UICollectionView的屬性設(shè)置中,可以直接設(shè)置出它的每行顯示個(gè)數(shù)维雇,大小等。但這個(gè)方法晒他,當(dāng)設(shè)備不一樣時(shí)吱型,這些具體參數(shù)就顯得沒啥用處了,所以我想在使用的時(shí)候陨仅,能根據(jù)不屏幕尺寸津滞,自動(dòng)適配寬度與高度。
解決辦法灼伤,在視圖進(jìn)行加載之時(shí)触徐,先調(diào)用一個(gè)視圖設(shè)置方法,來(lái)根據(jù)自己的需要狐赡,計(jì)算出每個(gè)Cell的寬與高撞鹉。
func setupView() {
let flowLayout = UICollectionViewFlowLayout()
var width = (view.bounds.size.width - 32)? / 2
// 左右間距
flowLayout.minimumInteritemSpacing = 1.0
// 上下行距
flowLayout.minimumLineSpacing = 16.0
// 格子尺寸
flowLayout.itemSize = CGSize(width: width, height: width)
// 上下右左周邊的間距
flowLayout.sectionInset = UIEdgeInsets(top: 16, left: 8, bottom: 16, right: 8)
collectionView?.collectionViewLayout = flowLayout
}
對(duì)于width這個(gè)變量,可以根據(jù)需要猾警,將后面的除數(shù)設(shè)置成你想要的一行的cell個(gè)數(shù)孔祸,比如,你想一行顯示兩個(gè)就除以2发皿,三個(gè)就除以3崔慧,以此類推。
需要注意的是穴墅,如果每一行的個(gè)數(shù)調(diào)節(jié)之后惶室,為了保持各個(gè)Cell間的間距看起來(lái)一致,還需要設(shè)置下那幾個(gè)間距玄货。