ios - JSQMessage 与文本消息后的媒体
问题描述
我正在尝试使用 JSQMessagesViewController 加载消息。但是 mediaMessages 是最后添加到数组中的,尽管它们不应该添加。图像应该在文本消息之间,但它们出现在最后。我想我需要为图像或类似的东西添加一个空气泡。
带有媒体的 JSQMessage 这个 mediaMessage 必须在 2 到 3 条消息之间
我的代码:
let query = Database.database().reference().child("chats").child(chatId!).queryLimited(toLast: 10)
_ = query.observe(.childAdded, with: { (snapshot) in
if let data = snapshot.value as? [String: AnyObject],
let id = data["userId"],
let name = self.chatName,
let text = data["content"]
{
if let image = data["image"] {
let storageKey = "images/" + self.chatId! + "/" + (image as! String)
let storageRef = Storage.storage().reference(withPath: storageKey)
storageRef.getData(maxSize: 1 * 1000 * 1000, completion: { (imageData, err) in
if err != nil {
print("Error with storage")
return
}
let imageMessage = UIImage(data: imageData!)
let mediaItem = JSQPhotoMediaItem(image: imageMessage)
if let message = JSQMessage(senderId: id as! String, displayName: name, media: mediaItem) {
self.messages.append(message)
self.finishReceivingMessage()
}
})
} else {
if let message = JSQMessage(senderId: id as! String, displayName: name, text: text as! String)
{
self.messages.append(message)
self.finishReceivingMessage()
}
}
}
})
解决方案
推荐阅读
- python-3.x - 为什么每次迭代我的 tqdm 进度条都显示在新行上?
- hugo - 将带有隐私包的 cookie 消息添加到 blogdown 网站
- mysql - 如何在mysql中查找同一列不同行中的两个值之间的差异
- pandas - Pandas - 将缺失的列自动添加到 Dataframe
- reactjs - Redux 状态在状态更新后返回未定义
- .net-core - 公共交通中的预定发布
- c++ - 使用时如何解决 C++ 中的编译终止错误
? - mongodb - 计算数组子元素中持续时间的“AVG”
- docker - 在 Dokuwiki Bitnami docker 镜像中添加和覆盖文件
- vue.js - 我正在使用 vuetify 并希望在下拉按钮的对象数组中呈现对象数组