Время jsqmessagviewController не отображается в быстром - PullRequest
0 голосов
/ 16 апреля 2020

Я создаю приложение для чата, и в этом я использовал jsqmessageviewcontroller для отображения чата, но столкнулся с одной проблемой в чате. Первый элемент - это вложение, как изображение, pdf et c, затем время не отображается. если первый элемент - текст, то время отображается правильно. Так что у кого-нибудь есть идея, пожалуйста, помогите мне. Для прикрепления используются пользовательские ячейки. enter image description here

Для отображения метки времени используется следующий метод: -

override func collectionView(_ collectionView: JSQMessagesCollectionView, attributedTextForCellTopLabelAt indexPath: IndexPath) -> NSAttributedString?
{

    let message = self.messages[indexPath.item]
    let messageVMObj = MessageViewModal(withMessage: message)
    if(indexPath.item == 0){
        print("indexPath.item == 0 called")
        return messageVMObj.setDay()
    } else {
        let currentMessage = self.messages[indexPath.item]
        let previousMessage = self.messages[indexPath.item - 1]
        if DateExtension().compareDates(currentDate: currentMessage.date, previousDate: previousMessage.date)
        {
            return nil
        }
        else
        {
          return messageVMObj.setDay()
        }
    }
}


 override func collectionView(_ collectionView: JSQMessagesCollectionView, layout collectionViewLayout: JSQMessagesCollectionViewFlowLayout, heightForCellTopLabelAt indexPath: IndexPath) -> CGFloat {

    let message = self.messages[indexPath.item]
    let messageVMObj = MessageViewModal(withMessage: message)

    //set height for group Msg Tag
    if isGroup {
        let msg = self.messages[indexPath.item]
        if  msg.gpMessageType != "" {
            return 0.0
        }
    }

    if(indexPath.item == 0){
        return 20.0
    } else {
        let currentMessage = self.messages[indexPath.item]
        let previousMessage = self.messages[indexPath.item - 1]
        if DateExtension().compareDates(currentDate: currentMessage.date, previousDate: previousMessage.date)
        {
           return 0.0
        }
        else
        {
            return 20.0
        }
    }


}

Так что, если есть какое-то решение для этого, пожалуйста, помогите мне.

Спасибо.

1 Ответ

0 голосов
/ 16 апреля 2020

Либо в вашей реализации пользовательских ячеек отсутствуют родительские вызовы super, ведущие к отсутствию отображения верхней метки, либо ваша переменная isGroup неверна. Можете ли вы поделиться своей собственной реализацией ячейки?

...