2017-09-27 4 views
0

JSQ Messages Controllerを使用してチャット機能をアプリケーションに追加していますが、自分自身で。しかし、Injustは、ユーザーの最後のメッセージのすぐ隣にプロフィール画像を表示する方法を理解できません。 たとえば、彼は3つのメッセージを書きますが、チャット内の他の人は何も書きません。今私はちょうど3番目のメッセージの横にプロフィール画像を表示したいと思います。アイテム(セル)を返すと、私は(indexPath.itemで)戻ってくるアイテムを編集することができます。前のメッセージ(indexPath.item - 1)が同じsenderIDを持つことを確認できます。しかし、indexPath.item + 1のセルが同じ送信者から来たものかどうかを確認することはできません。私は2番目のものを確認することができないので、私はどのように私の問題を解決するための手掛かりがありません。私はあなたが何をしたいのか理解してくれることを願います。チャット中のユーザーの最後のメッセージの横にプロファイル画像を表示するには

答えて

1

JSQMessageViewControllerが廃止されて以来、JSQMessageViewControllerを引き継いでいる新しいプロジェクトを指摘したいと思います。MessageKitと呼ばれています。

セット内の最後のメッセージかどうかを判断する関数を作成します。それがnil

func collectionView(_ collectionView: JSQMessagesCollectionView!, avatarImageDataForItemAt indexPath: IndexPath!) -> JSQMessageAvatarImageDataSource! { 
    if let message = messages[indexPath.item]{ 
     if isLastInSet(indexOfMessage: indexPath) { 
     return ImageData 
     } 
    } 
    return nil 
    } 
+0

おかげで男に偽のセットの画像を返す場合

//Check if it is the last message in all your messages //Check that the next message is not sent by the same person. func isLastInSet(indexOfMessage: IndexPath) -> Bool { if indexOfMessage.item == messages.count -1 { return true } else if { return messages[indexOfMessage.item].senderID() != messages[indexOfMessage.item + 1].senderID() } } 

が今だけavatarImageDataForItemAtisLastInSetに呼び出しを追加し、私はそれを動作させるために少し物事を変更する必要がありました!私は速い4は私にそれを変えなければならなかったと思うが、あなたの考えは正しい! – AlexVilla147

関連する問題