gpt4 book ai didi

ios - 在运行时设置 numberOfItemsInSection - UICollectionView

转载 作者:行者123 更新时间:2023-11-28 06:58:57 27 4
gpt4 key购买 nike

我想在运行时设置我的 collectionView 的 numberOfItemsInSection。我将经常在运行时以编程方式更改值,并且想知道如何更改。

我有一组图像要显示在我的 UICollectionView 中(每个 UICollectionViewCell 一张图像),用户可以更改要显示的图像的类别,这也会更改要显示的图像数量。当 View 加载时,numberOfItemsInSection 被设置为 allClothingStickers 数组的计数。但是这个数字太高了。显示的数组是 clothingStickersToDisplay 数组,它是 allClothingStickers 数组的子集。

滚动后出现这个错误:

fatal error: Array index out of range

这是因为项目的数量变小了,但是UICollectionView numberOfItemsInSection属性并没有变小。

我有这个函数可以在运行前设置 UICollectionView 中的单元格数量。

func collectionView(collectionView: UICollectionView,
numberOfItemsInSection section: Int) -> Int {
return self.numberOfItems
}

此函数用于设置 stickersToDisplay 数组(我想在此处更新 numberOfItemsInSection 属性):

func setStickersToDisplay(category: String) {
clothingStickersToDisplay.removeAll()
for item in self.allClothingStickers {
let itemCategory = item.object["category"] as! String
if itemCategory == category {
clothingStickersToDisplay.append(item)
}
}
self.numberOfItems = clothingStickersToDisplay.count
}

这是返回要显示的单元格的函数:

 func collectionView(collectionView: UICollectionView,
cellForItemAtIndexPath indexPath: NSIndexPath)
-> UICollectionViewCell {
let cell = collectionView.dequeueReusableCellWithReuseIdentifier(
identifier,forIndexPath:indexPath) as! CustomCell

let sticker = clothingStickersToDisplay[indexPath.row]
let name = sticker.object["category"] as! String

var imageView: MMImageView =
createIconImageView(sticker.image, name: name)
cell.setImageV(imageView)
return cell
}

编辑:哦,是的,我需要用新的 clothingStickersToDisplay 重新加载 UICollectionView 在我更新它的同一位置 numberOfItemsInSection

最佳答案

我认为你应该做的是 clothingStickersToDisplay 全局数组声明。

而不是使用 self.numberOfItems = clothingStickersToDisplay.count将此功能更改为

func setStickersToDisplay(category: String) {
clothingStickersToDisplay.removeAll()
for item in self.allClothingStickers {
let itemCategory = item.object["category"] as! String
if itemCategory == category {
clothingStickersToDisplay.append(item) //<---- this is good you have the data into the data Structure
// ----> just reload the collectionView
}
}

}

在 numberOfItemsInSection() 中

return self.clothingStickersToDisplay.count

关于ios - 在运行时设置 numberOfItemsInSection - UICollectionView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32534022/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com