我有一個UICollectionView,用戶可以選擇單元格來使用它的功能。所以我需要它將第一個單元格設置爲在第一個屏幕截圖中進行選擇。但是問題出現在單元格被選中並且用戶想要選擇第一個單元格不能取消選擇的其他單元格。我嘗試它來重新加載tableview中沒有選擇的項目,但不能運行或與此func在viewdidload LabelCollectionView.selectItem(at: IndexPath(row: 1, section: 0), animated: true, scrollPosition: .bottom)
SelectItem在UICollectionView上第一次加載
有沒有人有一個想法,我可以在那裏做什麼?感謝您的幫助:)
Here you see the Problem in the screenshot
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "StoryLabelCell", for: indexPath) as! StoryLabelCell
let labels = Labels[indexPath.row]
cell.backgroundColor = UIColor.lightGray
cell.layer.cornerRadius = 10
cell.Title.text = labels
if indexPath.row == 0 {
cell.backgroundColor = darkgrau
cell.layer.borderColor = black.cgColor
cell.layer.borderWidth = 2.0
}
return cell
}
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
let cell = collectionView.cellForItem(at: indexPath) as! StoryLabelCell
if indexPath.row == indexPath.row {
cell.backgroundColor = darkgrau
cell.layer.borderColor = black.cgColor
cell.layer.borderWidth = 2.0
}
}
func collectionView(_ collectionView: UICollectionView, didDeselectItemAt indexPath: IndexPath) {
let cell = collectionView.cellForItem(at: indexPath) as! StoryLabelCell
if indexPath.row == indexPath.row {
cell.backgroundColor = lightGray
cell.layer.borderWidth = 0
}
}
我曾經在{index path.row == index path.row} else {}中設置了淺灰色(未選中)的其他單元格,但它沒有運行,只給出了我選中的單元格。所以它運行的所有,但問題是當我想選擇其他細胞的第一個細胞(選擇什麼)不離開,然後選擇兩個細胞。無論如何,當我點擊其他細胞時,我必須改變第一個細胞的選擇(淺灰色)。 –
是的,它是如何工作的,你應該將它標記爲selected = true來更改UI,並在選擇其他單元格時將其設置爲false。使用上述代碼進行操作嗎? – Santosh
是的,我已經嘗試過,但它不能運行給它也許在didSelectItemAt其他方式? –