У меня есть UICollectionView, и пользователь может выбрать ячейку для использования функции в ней. Поэтому, и мне нужно, чтобы первая ячейка была выбрана, как в первом скриншоте. Но проблема в том, что когда ячейка выбрана, и пользователь хочет выбрать другую ячейку, первая ячейка не отменяет. Я попробовал перезагрузить табличное представление в выбранном элементе, но это не работает или с этим 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 {}, но он не запускается, он дает мне только выбранную ячейку. Таким образом, он запускается, но проблема заключается в том, что когда я хочу выбрать другую ячейку, первая ячейка (что выбрана) не уходит, а затем выбираются две ячейки. В любом случае я должен изменить select (светло-серый) первой ячейки, когда я нажимаю другую ячейку. –
Да, как это работает, вы должны пометить его как selected = true, чтобы изменить пользовательский интерфейс и установить его обратно в значение false при выборе других ячеек. Вы писались с кодом выше? – Santosh
Да, я попробовал, но это не работает, дайте это, возможно, другим способом в didSelectItemAt? –