像iPad的桌面那样的布局就是使用集合视图实现的,一般来说集合视图提供一个类似于网格状的布局,不过如果你提供一个UICollectionViewLayout的子类并提供给集合视图,那么你可以创建更加复杂的视图。
与TableView类似的,CollectionView也使用了数据源和委托。CollectionView显示一个个的CollectionViewCell对象,与tableViewCell一样,它们也是有自己的样式和布局的,但不提供默认样式,需要自己设计。这也就意味着一定需要自己创建一个CollectionViewCell的子类。CollectionViewCell也是可以重用的,它需要自己的id。
拖入一个UICollectionViewController会自动将自己设置为代理和数据源。
实现这几个方法
override func numberOfSectionsInCollectionView(collectionView: UICollectionView) -> Int {
// #warning Incomplete implementation, return the number of sections
return 1
}
override func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
// #warning Incomplete implementation, return the number of items
return self.numbers.count
}
override func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCellWithReuseIdentifier(reuseIdentifier, forIndexPath: indexPath) as UICollectionViewCell
// Configure the cell
if let gridCell = cell as? GridCell {
gridCell.label.text = String(self.numbers[indexPath.row])
}
return cell
}
还有一些其他有用的方法,比如选中了哪个,取消选中了哪个等等等
override func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {
print(indexPath.row)
}