gpt4 book ai didi

ios - 如何使用 JSQMessageViewController 使发件人显示名称出现?

转载 作者:搜寻专家 更新时间:2023-10-30 21:49:12 25 4
gpt4 key购买 nike

我有以下函数被调用以添加消息:

    func addMessage(text: String, displayName: String) {
let message = JSQMessage(senderId: "tester", displayName: displayName, text: text)
messages.append(message)

finishReceivingMessage()

}

然后在这个函数中

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

我返回该 indexPath 的消息日期。该消息正确显示,但没有显示名称。

最佳答案

我认为您缺少 attributedTextForMessageBubbleTopLabelAtIndexPath 应该看起来像这样

 override func collectionView(collectionView: JSQMessagesCollectionView?, attributedTextForMessageBubbleTopLabelAtIndexPath indexPath: NSIndexPath!) -> NSAttributedString! {
let message = messages[indexPath.item]
switch message.senderId {
case CURRENTUSERID:
return nil
default:
guard let senderDisplayName = message.senderDisplayName else {
assertionFailure()
return nil
}
return NSAttributedString(string: senderDisplayName)

}
}

编辑:

还要确保使用此功能为标签赋予高度

override func collectionView(collectionView: JSQMessagesCollectionView!, layout collectionViewLayout: JSQMessagesCollectionViewFlowLayout!, heightForMessageBubbleTopLabelAtIndexPath indexPath: NSIndexPath!) -> CGFloat {
return 13 //or what ever height you want to give
}

祝你好运🚀

关于ios - 如何使用 JSQMessageViewController 使发件人显示名称出现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35999902/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com