Представление JsqMessageViewController, отображающее только однострочные тексты

В настоящее время я использую JSQMessageViewController и заполняю его данными из таблицы firebase — я следовал примеру Fire-chat, доступному на сайте Firebase. Все работает, за исключением того, что по какой-то причине ячейки показывают только первую строку многострочного текста, а затем обрезают ее.

Я в значительной степени следовал тому, что https://github.com/firebase/ios-swift-chat-example

Мои входящие/исходящие пузырьковые представления создаются в моем viewdidload

self.incomingBubble = JSQMessagesBubbleImageFactory().incomingMessagesBubbleImageWithColor(CHAT_GRAY_COLOR)

И ячейки заполняются из моего массива сообщений

override func collectionView(collectionView: JSQMessagesCollectionView!, messageDataForItemAtIndexPath indexPath: NSIndexPath!) -> JSQMessageData! {
    return self.messages[indexPath.item]
}

И затем есть много необходимых методов JSQCollectionView, в том числе:

override func collectionView(collectionView: JSQMessagesCollectionView!, messageBubbleImageDataForItemAtIndexPath indexPath: NSIndexPath!) -> JSQMessageBubbleImageDataSource! {
    let message = messages[indexPath.item]

    if message.senderId() == sender {
        return outgoingBubble
    }

    return incomingBubble

}

Если кто-то сталкивался с этим раньше, я был бы очень признателен за любую помощь. Я продолжу рыскать в документации в то же время

Будут


person PBWilliam    schedule 27.04.2016    source источник


Ответы (2)


Проверьте свой Message object. Высота пузырька определяется Message.Hash, поэтому, если вы создали свой собственный объект сообщения, который наследуется для JSQMessage, убедитесь, что вы устанавливаете хэш так же просто, как

func messageHash() -> UInt { return UInt(self.hash) }

Но если вы реализуете свои сообщения, как обычный I.E.

JSQMessage(senderId: AvatarIdCook, displayName: DisplayNameCook, text: "What is this Black Majic?")

тогда у вас не должно быть этой проблемы. дайте мне знать, если это поможет ????

person Dan Leonard    schedule 11.05.2016

Звучит как проблема с ограничениями, после того, как вы закончите загрузку данных из Firebase, вы добавите это?

self.finishReceivingMessageAnimated(true)
person Jay    schedule 28.04.2016
comment
Да, у меня есть вызов finishReceiveMessageAnimated после загрузки данных. Знаете ли вы больше о том, где будут ограничения для JSQMessageViewCells? Я возьму добычу на этом - person PBWilliam; 30.04.2016