Ячейки используются повторно - отсюда и вызов dequeueReusableCell()
.
Итак, вам нужно установить цвет фона по умолчанию:
if indexPath.row == 1 {
cell.backgroundColor = .green
} else {
cell.backgroundColor = .white // or whatever your "default" color should be
}
Редактировать (после комментария)
Поскольку вы показываете "Сообщение" ... подумайте о приложении "чат". Сообщения могут быть «от кого-то» или «кому-то». Я предполагаю, что ваши данные уже знают это, поэтому вы можете сделать:
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: cellId, for: indexPath) as! MessageCollectionViewCell
cell.textMessageLabel.text = arrMes[indexPath.row].textMessage
cell.dataMessage.text = arrMes[indexPath.row].dataOfMessage
if arrMes[indexPath.row].fromOrTo == "from" {
cell.backgroundColor = .green
} else {
cell.backgroundColor = .yellow
}
return cell
}