Swift 如果设置情节提要中的项目数,是否需要使用numberOfItemsInSection函数?

Swift 如果设置情节提要中的项目数,是否需要使用numberOfItemsInSection函数?,swift,xcode,Swift,Xcode,在uicollectionview上有一些帖子,作为一个一般概念,我理解uicollectionview类似于tableview的实现方式。关于这个话题已经有一些帖子了 我使用一个UICollectionView来布局8个单元格,基本上是为了装饰目的…就像一个容器,用来为一页保存一些图像。这些图片并不意味着是互动的,比如购物车 我的问题是,如果我在故事板上布置单元格,是否需要实现下面的功能(以及其他类似的功能) // tell the collection view how many cell

uicollectionview
上有一些帖子,作为一个一般概念,我理解
uicollectionview
类似于
tableview
的实现方式。关于这个话题已经有一些帖子了

我使用一个
UICollectionView
来布局8个单元格,基本上是为了装饰目的…就像一个容器,用来为一页保存一些图像。这些图片并不意味着是互动的,比如购物车

我的问题是,如果我在故事板上布置单元格,是否需要实现下面的功能(以及其他类似的功能)

// tell the collection view how many cells to make
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
    return self.items.count
}
我在故事板上配置的
UICollectionView
中有8个单元格(此集合视图是
UIViewController
上的视图),每个
UICollectionViewCell
都有一个带in的图像视图。我已经把这一切都写在故事板上了

// tell the collection view how many cells to make
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
    return self.items.count
}
我也不想在每个单元格中放置一个图像。只有一定数量的细胞,如细胞2、3、5和8

因此,我要做的是创建一个类,该类扩展图像视图的
UIControllerViewCell
,并创建一个
IBOutlet
,然后在接口生成器中引用自定义单元格类

我想-但可以提供一些建议-然后我需要做的就是使用下面的函数,因为我只想填充某些单元格,所以当它是2,3,5和8时,我可以使用if语句作为索引路径:

// make a cell for each cell index path
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {

  if(indexPath == 2 || 3 || 5|| 8)
  {
        let cell = collectionView.dequeueReusableCell(withReuseIdentifier: reuseIdentifier, for: indexPath as IndexPath) as! MyCollectionViewCell

        // Use the outlet in our custom class to get a reference to the UILabel in the cell
        cell.image = self.items[indexPath.item]


        return cell
  }
}

谢谢。

听起来你是在问静态UICollectionViewController,这是不可能的。您将在故事板中创建一个原型单元,并将IBOutlets与所需的类链接起来。您还需要为UICollectionView实现数据源和委托方法。只需根据索引将图像隐藏在您不想显示的位置。

听起来您是在询问静态UICollectionViewController,这是不可能的。您将在故事板中创建一个原型单元,并将IBOutlets与所需的类链接起来。您还需要为UICollectionView实现数据源和委托方法。只需根据索引将图像隐藏在您不想显示它的位置。

cellForItemAt
必须返回值(在本例中为
UICollectionViewCell
实例),但您可以将某些单元格的图像设置为
nil
(也称为无图像)

例如:


cellForItemAt
必须返回值(在本例中为
UICollectionViewCell
实例),但您可以将某些单元格的图像设置为
nil
(也称为无图像)

例如:


你好谢谢你,哈桑。我可以问一下为什么UICollectionView允许我将多个单元格排列成故事板上的多行吗?例如,我想要两行,每行4个单元格。我可以在故事板上设置,但你是说我真的只需要一个单元格,然后以编程方式创建8个单元格?以UITableView为例,显然只有一个原型单元,然后通过编程指定行数。您可以在情节提要中设置任意数量的单元。但除非您实现UICollectionview的委托方法,否则它们不会显示在应用程序中。您可以在故事板中放置多个单元以查看单元的正确宽度和高度,或者如果希望在collectionview中具有多种类型的单元,可以在故事板中设计它们。UITableview的情况也是如此。UITableview可以有多个原型单元格。Hi。谢谢你,哈桑。我可以问一下为什么UICollectionView允许我将多个单元格排列成故事板上的多行吗?例如,我想要两行,每行4个单元格。我可以在故事板上设置,但你是说我真的只需要一个单元格,然后以编程方式创建8个单元格?以UITableView为例,显然只有一个原型单元,然后通过编程指定行数。您可以在情节提要中设置任意数量的单元。但除非您实现UICollectionview的委托方法,否则它们不会显示在应用程序中。您可以在故事板中放置多个单元以查看单元的正确宽度和高度,或者如果希望在collectionview中具有多种类型的单元,可以在故事板中设计它们。UITableview的情况也是如此。UITableview可以有多个原型单元。