我已经集成了JSQMessagesViewController对于聊天,我有一个问题来区分发送者和接收者消息显示右侧和左侧。我该如何解决这个问题?
答案 0 :(得分:0)
override func collectionView(_ collectionView: JSQMessagesCollectionView, messageBubbleImageDataForItemAt indexPath: IndexPath) -> JSQMessageBubbleImageDataSource {
return messages[indexPath.item].senderId == self.senderId ? outgoingBubble : incomingBubble
}
答案 1 :(得分:0)
聊天控制器配置:
1):如果你使用JSQMessagesViewController,你的聊天控制器应该继承自JSQMessagesViewController。
2):JSQMessagesViewController具有名称senderId,senderDisplayName,myImage的属性。因此,您使用登录用户Id,displayName和Image(self.senderId = loginUser.id等)分配这些属性,因为登录用户是发件人。
self.senderId = loginUser.uniqueId;
self.displayName = loginUser.dispalyName; // if you have
self.otherImage = [[JSQMessagesAvatarImage alloc]
initWithAvatarImage:"loginUserImage if you have"
highlightedImage:"highlitedImage if you have"
placeholderImage:"placeholder image if you have"];
3):JSQMessagesViewController还具有名称otherImage的属性。所以你应该把这个属性分配给你喜欢聊天的其他用户形象。
self.otherImage = [[JSQMessagesAvatarImage alloc]
initWithAvatarImage:"userImage if you have"
highlightedImage:"highlitedImage if you have"
placeholderImage:"placeholder image if you have"];
注意:您应该在viewDidLoad()或viewWillAppear()中执行此配置。此代码在objective-C中,因此您可以相应地使用。 希望这会对你有所帮助。
答案 2 :(得分:0)
您应首先在userId
中设置自己的self.senderId
作为您在进入其他部分的messageBubbleImageDataForItemAt中的条件。这就是为什么所有气泡只在左侧显示的原因。