2017-02-17 4 views
0

Я провел некоторое исследование о том, как отображать имя отправителя над пузырьками сообщения на JSQMessage, но ничего не отображается над пузырьками. Ниже мой код: сообщения работают нормально, это просто отображаемое имя. Предложения?JSQMessages TextForMessageBubbleTopLabel, swift

func collectionView(collectionView: JSQMessagesCollectionView!, attributedTextForMessageBubbleTopLabelAtIndexPath indexPath: NSIndexPath!) -> NSAttributedString! { 
    let message = messages[indexPath.item]; 

    // Sent by me, skip 
    if message.senderId == senderId { 
     return nil; 
    } 

    // Same as previous sender, skip 
    if indexPath.item > 0 { 
     let previousMessage = messages[indexPath.item - 1]; 
     if previousMessage.senderId == message.senderId { 
      return nil; 
     } 
    } 

    return NSAttributedString(string:message.senderId) 
} 

func collectionView(collectionView: JSQMessagesCollectionView!, layout collectionViewLayout: JSQMessagesCollectionViewFlowLayout!, heightForMessageBubbleTopLabelAtIndexPath indexPath: NSIndexPath!) -> CGFloat { 
    let message = messages[indexPath.item] 

    // Sent by me, skip 
    if message.senderId == senderId { 
     return CGFloat(0.0); 
    } 

    // Same as previous sender, skip 
    if indexPath.item > 0 { 
     let previousMessage = messages[indexPath.item - 1]; 
     if previousMessage.senderId == message.senderId { 
      return CGFloat(0.0); 
     } 
    } 

    return kJSQMessagesCollectionViewCellLabelHeightDefault 
} 

ответ

0

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

Изменить

func collectionView(collectionView: JSQMessagesCollectionView!, attributedTextForMessageBubbleTopLabelAtIndexPath indexPath: NSIndexPath!) -> NSAttributedString! { 

к ->

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

и это

func collectionView(collectionView: JSQMessagesCollectionView!, layout collectionViewLayout: JSQMessagesCollectionViewFlowLayout!, heightForMessageBubbleTopLabelAtIndexPath indexPath: NSIndexPath!) -> CGFloat { 

к ->

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

Сообщите мне, если вам нужна дополнительная помощь.

Смежные вопросы