JSQMessageViewController-在聊天气泡内的文本侧面添加标签

时间:2020-08-05 17:05:55

标签: swift jsqmessagesviewcontroller

我将JSQMessageViewController用于正在构建的简单聊天应用程序,并且由于我通常是Swift和iOS开发的新手,因此我需要一些有关如何实现此目的的帮助:

我想在聊天气泡中添加一个时间戳。我读到我需要更改一些相关的xib文件,但是我不太确定该怎么做。

我发现了this,并且 marcuschoong 的评论非常接近,但是我不确定如何找到这些xibs的类,以及如何将IBOutlet连接到该类。 (我在目标C方面也没有任何经验)。我需要传入和传出消息的时间戳。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

根据传入或传出消息的类型,有2个xib文件:

JSQMessageCollectionViewCellIncoming.xib
JSQMessageCollectionViewCellOutgoing.xib

两者的结构相同:化身,气泡容器,cellTopLabel,cellBottomLabel ...

根据您的情况,可以将cellTopLabel或cellBottomLabel移动到气泡容器中(并调整其约束)。如果使用cellBottomLabel,则需要修改以下方法以显示每条消息的时间戳(默认情况下,时间戳仅每3条消息显示一次,“ indexPath.item%3”):


- (NSAttributedString *)collectionView:(JSQMessagesCollectionView *)collectionView attributedTextForCellBottomLabelAtIndexPath:(NSIndexPath *)indexPath
{
    JSQMessage *message = messages[indexPath.item];
    return [[JSQMessagesTimestampFormatter sharedFormatter] attributedTimestampForDate:message.date];
}