Sto usando la vista raccolta orizzontale per scorrere le date. La vista raccolta contiene 30 celle. Se seleziono la prima cella, per indicare la selezione, il colore di sfondo della cella è stato modificato in marrone dal colore rosso predefinito. Quindi, se seleziono un'altra cella, il colore della cella selezionato è diventato marrone da rosso. Ma la prima cella BGColor rimane la stessa (marrone). Come posso cambiare il colore predefinito facendo clic su un'altra cella?Cambiare il colore di sfondo della cella in UICollectionView in Swift
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath
indexPath: NSIndexPath) -> UICollectionViewCell {
var cell = collectionView.dequeueReusableCellWithReuseIdentifier("cell",
forIndexPath: indexPath) as myViewCell
cell.date_label.text = arr_date[indexPath.item]
}
func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath
indexPath: NSIndexPath) {
var cell = collectionView.cellForItemAtIndexPath(indexPath) as myViewCell
if(cell.selected)
{
cell.backgroundColor = UIColor.brownColor()
}
else
{
cell.backgroundColor = UIColor.redColor()
}
}
Grazie Andrew! Ma come posso mantenere il vecchio e nuovo Indexpath? –
@ McDonal_11 uso le variabili membro classe –
quando ho usato 'cell.selectedBackgroundView.backgroundColor' ottengo l'errore' errore fatale: trovato inatteso nil mentre scartando un valore Optional'. Devo prima creare questa vista se la cella esiste già? – zillaofthegods