我正在使用MessageKit为我的应用创建聊天界面。
如果多条消息来自同一作者,我目前正在使用他们示例中的此代码来不显示用户的头像:
func configureAvatarView(_ avatarView: AvatarView, for message: MessageType, at indexPath: IndexPath, in messagesCollectionView: MessagesCollectionView) {
let sigil = Sigil(ship: Sigil.Ship(rawValue: message.sender.senderId)!, color: .black).image(with: CGSize(width: 24.0, height: 24.0))
let avatar = Avatar(image: sigil, initials: "")
avatarView.set(avatar: avatar)
avatarView.isHidden = isNextMessageSameSender(at: indexPath)
}
func isNextMessageSameSender(at indexPath: IndexPath) -> Bool {
guard indexPath.section + 1 < messages.count else { return false }
return messages[indexPath.section].sender.displayName == messages[indexPath.section + 1].sender.displayName
}
这是 MessageKit 示例应用程序中的样子:
这是在我的应用程序中使用相同代码的结果:
编辑
因此,问题似乎出在此处:
func isNextMessageSameSender(at indexPath: IndexPath) -> Bool {
guard indexPath.section + 1 < messages.count else { return false }
return messages[indexPath.section].sender.displayName == messages[indexPath.section + 1].sender.displayName
}
但我还没有确切地缩小它是什么
编辑 2 我试着让它检查使用行而不是列;仍然得到这种结果: