我一直在試圖設置一個集合視圖,我有用戶提交幾個字符串,我拋出一個數組並通過集合視圖的cellForItemAt函數回調。但是,無論何時將一行添加到集合視圖的頂部,它都會在最後一個單元標籤的頂部添加單元格標籤,因此they stack like this。請注意,我添加的每個新單詞都包含渲染中的所有其他單詞。如何防止出列集合視圖單元彼此重疊?
我在cellForItemAt代碼是
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
if let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "InterestsCell", for: indexPath) as? InterestsCell {
cell.interestLabel.text = array[indexPath.row]
return cell
} else {
return UICollectionViewCell()
}
}
,並按下添加按鈕時,我的代碼是
func addTapped() {
let interest = interestsField.text
array.insert(interest!, at: 0)
interestsField.text = ""
collectionView.reloadData()
}
我不知道發生了什麼事。我到處尋找並嘗試使用prepareForReuse(),但它似乎沒有工作。我後來嘗試通過調用didSelect來刪除單元格,單元格不會再次消失。任何幫助表示讚賞!
我建議使用視圖調試器來確定問題是什麼(例如重疊標籤,重疊單元格或重疊的集合視圖)。你知道視圖層次結構是什麼樣子,這將縮小你的研究範圍。 – Rob
@Rob謝謝Rob,這讓我走上了正軌。出於某種原因,它每創建一個集合視圖的新實例,我都會添加一個新字符串,以便將每個集合疊加在一起。 –
是的,現在你可以追蹤你添加重複集合視圖的位置。但目前爲止,您還沒有與我們分享過的代碼。祝你好運! – Rob