我有一个空的UICollectionView,其中包含一个字符串数组作为数据源。
当我将第一个字符串添加到数组并在collectionView上调用reloadData()时,这正如我所料。当我添加第二个字符串并调用reloadData()时没有任何反应,但我的数组肯定增长了。当我添加第三个项目并调用reloadData()时,第二个项目出现但不是第三个项目。每个新添加都会导致出现上一个字符串。
如果我在不添加字符串的情况下调用reloadData(),则会显示最后一项。
我添加到集合的代码:
func addKeyword(keyword: String) {
keywords.append(keyword)
newKeywordText.text = ""
keywordCollection.reloadData()
}
我的collectionView相关代码:
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
print("keywords: at refresh \(keywords.count)")
return keywords.count
}
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let keyword = keywords[indexPath.row]
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "KeywordCloudCell", for: indexPath) as! KeywordCloudCell
let keywordLabel:UILabel = (cell.viewWithTag(1) as? UILabel)!
keywordLabel.text = keyword
return cell
}
我知道numberOfItemsInSection正在返回正确的计数,所以我不知道它为什么会这样表现。有什么想法吗?
答案 0 :(得分:0)
首先尝试完成数组,然后在完成后再调用
的 keywordCollection.reloadData()强>
您还可以分享您如何调用addKeyword方法