0

ユーザ名を表示、そして、私はこのenter image description hereスウィフト - JSQMessagesViewControllerが着信アバター電子メ​​ールまたは私はチャットアプリを開発しています

問題は、今私は、メッセージの上にユーザー名を表示することができますどのように持っていることはデモで、このように泡? https://raw.githubusercontent.com/jessesquires/JSQMessagesViewController/develop/Screenshots/screenshot2.png

私が探しているのはoverride func collectionView(collectionView: JSQMessagesCollectionView!, senderDisplayNameDataForItemAtIndexPath indexPath: NSIndexPath!) -> JSQMessageAvatarImageDataSource!ですが、それは不可能だと思います。ここでの解決策は何と思いますか?ありがとう!

+0

を助けている場合、あなたは私がJSQをお勧めしませんフルフラグメッセージングアプリケーションが必要な場合は私に知らせて投げるものです。つまり、私たちは私たち自身を書いてしまいました非常にトリッキーなviewControllerも... –

答えて

2

受信メッセージのuserNameを表示するために、JSQには以下のメソッドがあります。

//MARK: To View usernames above bubbles 

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

    // Sent by me, skip 
    if message.sender() == sender { 
     return nil; 
    } 

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

    return NSAttributedString(string:message.sender()) 
} 

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

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

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

    return kJSQMessagesCollectionViewCellLabelHeightDefault 
} 

上記のコードは私のために働いていますが、私はそれもあなたのために働くことを願っています。詳細情報については、私はあなただけ欠けていると思うデモ

https://github.com/jessesquires/JSQMessagesViewController

1

を見ることができます。

override func collectionView(collectionView: JSQMessagesCollectionView?, layout collectionViewLayout: JSQMessagesCollectionViewFlowLayout?, heightForMessageBubbleTopLabelAtIndexPath indexPath: NSIndexPath!) -> CGFloat { 
    // Override point: 
    // 
    // Here we check for what our setting is for displaying the senderDisplayName 
    // if we dont want to display it we just return a height of 0. 
    // Then we check to see if (The current user) 
    // sent the message if so we return 0, because we know our own name, 
    // other wise we return the defualt height. 
    // 

    return kJSQMessagesCollectionViewCellLabelHeightDefault 
} 

ほとんどの人はそれが原因の柔軟性の欠如に

関連する問題