如何在 iOS 应用中创建 CollectionView 布局?


CollectionView 和 TableView 是 iOS 开发中众多基本概念中的两个,每个开发者都应该掌握两者才能成为一名优秀的开发者。

在这篇文章中,我们将主要关注 CollectionView,CollectionView 与表格视图类似,但也有一些区别,CollectionView 支持横向和纵向滚动,看起来像一个网格。iOS 中的 CollectionView 在 Android 中也称为网格视图。

要了解更多信息,您可以参考 https://developer.apple.com/documentation/uikit/uicollectionview

如您所见,CollectionView 由补充视图和单元格组成,CollectionView 使用单元格在屏幕上显示项目,单元格是 UICollectionViewCell 类的一个实例,您的数据源会配置并提供该实例。

您的数据源配置并提供。

除了单元格之外,补充视图还可以是节标题和节脚注等内容,这些内容独立于各个单元格,但仍然传达某种信息。对补充视图的支持是可选的,并由集合视图的布局对象定义,该对象还负责定义这些视图的位置。

因此,在这篇文章中,我们将了解如何创建 Collection View。

让我们开始吧!

步骤 1 - 打开 Xcode 并创建一个单视图应用程序,将其命名为 SampleCollectionView。

步骤 2 - 在 Main.storyboard 中添加 UICollectionView,如下所示:

步骤 3 - 选择集合视图单元格,并将重用标识符命名为“cell”,如下所示:

步骤 4 - 创建一个新的 Cocoa touch 文件,将其命名为 CollectionViewCell,类型为 UICollectionViewCell,并将类添加到与单元格相同的名称,如下所示:

步骤 5 - 在 ViewController.swift 中创建 collection view 的 @IBOutlet。

步骤 6 - 现在将委托和数据源添加到 collection view。

步骤 7 - 打开 ViewController.swift 并确认 UICollectionViewDelegate 和 UICollectionViewDataSource。

class ViewController: UIViewController, UICollectionViewDelegate, UICollectionViewDataSource

步骤 8 - 实现强制委托方法,如下所示:

func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
   return 500
}
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
   let cell: UICollectionViewCell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell", for: indexPath) as! CollectionViewCell
   cell.backgroundColor = UIColor.gray
   return cell
}

步骤 9 - 运行应用程序,您可以垂直滚动,要使 collection view 水平滚动,

将滚动方向属性更改为水平。


完整代码

import UIKit
class ViewController: UIViewController, UICollectionViewDelegate, UICollectionViewDataSource {
   @IBOutlet var collectionView: UICollectionView!
   override func viewDidLoad() {
      super.viewDidLoad()
   }
   func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
   return 500
   }
   func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
      let cell: UICollectionViewCell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell", for: indexPath) as! CollectionViewCell
      cell.backgroundColor = UIColor.gray
      return cell
   }
}

更新于: 2020-07-03

392 次查看

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告