集合视图

像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)
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容