2017-09-27 12 views
0

JSQ 메시지 컨트롤러를 사용하여 내 앱에 채팅 기능을 추가하고 있지만 내 프로필에 채팅 기능을 추가하고 있습니다. . 그러나 Injust는 사용자의 마지막 메시지 옆에 프로필 그림을 표시하는 방법을 파악할 수 없습니다. 예를 들어, 그는 3 개의 메시지를 쓰고 아무도 채팅에 아무 것도 쓰지 않습니다. 이제 프로필 사진의 세 번째 메시지 옆에 표시하고 싶습니다. 항목 (셀)을 반환하면 나는 (indexPath.item에서) 반환 할 항목을 편집 할 수 있습니다. 전에 (indexPath.item - 1에서) 같은 senderID 메시지가 있는지 확인할 수 있습니다. 하지만 indexPath.item + 1에있는 셀이 동일한 발신자인지 여부는 확인할 수 없습니다. 두 번째 질문을 확인할 수 없기 때문에 문제를 해결할 수있는 방법이 없습니다. 내가하고 싶은 것을 당신이 이해했기를 바랍니다.채팅에있는 사용자의 마지막 메시지 옆에 프로필 이미지 만 표시하는 방법

답변

1

먼저 JSQMessageViewController이 넘는 새로운 프로젝트를 가리키고 있습니다. JSQMessageViewController은 사용되지 않으므로 MessageKit입니다.

집합의 마지막 메시지인지 확인하는 기능을 만듭니다. 이 전무에 잘못된 설정을

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