У меня есть collectionView
чат, и я хочу отображать время для каждого сообщения.
Вот функция ячейки dequeueReusable
:
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "myCell", for: indexPath) as! ChatMessageCollectionVIewCell
let message = messagesArray[indexPath.row]
cell.configure(with: message)
return cell
}
А вот функция настройки внутри моего файла collectionViewCell
, Сообщения: имеет тип NSManagedOBject
(основные данные) и имеет 3 свойства: usserMessage
, isFromApi
и timeDate
.
func configure(with message:Messages)
{
messageOutlet.text = message.userMessage
viewForMessages.backgroundColor = UIColor.lightGray
let currentDateTime = Date()
let formatter = DateFormatter()
formatter.timeStyle = .short
formatter.dateStyle = .none
timeLabel.text = formatter.string(from: currentDateTime)
if message.isFromApi == true
{
viewForMessages.backgroundColor = .lightGray
trailingConstraint.constant = 40
leadingConstraint.constant = 10
}
else
{
viewForMessages.backgroundColor = #colorLiteral(red: 0, green: 0.5898008943, blue: 1, alpha: 1)
trailingConstraint.constant = 10
leadingConstraint.constant = 40
}
}
На данный момент он правильно показывает мне время для первого сообщения, но когда я добавляю другое сообщение через минуту, оно также меняет время для первого сообщения.