首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检索JSQMessage发送的图像

检索JSQMessage发送的图像
EN

Stack Overflow用户
提问于 2015-07-28 22:29:32
回答 2查看 3.1K关注 0票数 2

我正在使用JSQMessage在Swift中创建一个聊天应用程序,基本上我的问题是当用户点击我想要的照片--聊天中的照片--我想让照片弹出全屏

我将增加我想要做的事情的步骤,它可能会更长,但更容易理解。(从发送方的角度来看,同样是有效的,因此接收方作为图像结束在同一个数组中)

发送图片:

代码语言:javascript
复制
let sendMessage = JSQMessage(senderId: senderId, displayName: senderDisplayName, media: photoItem) <- Image I am interested is inside here
self.messages.append(sendMessage)
self.finishSendingMessage()

很好,我可以看到我在屏幕上发送的图片,现在我想点击它,并希望它弹出全屏(对于任何旧照片,所以我在这里使用"didTapMessageBubbleAtIndexPath",这里有println(messages[indexPath.row])检索我的JSQMessage对象,我可以看到它上面有我的图像(作为转储),但我无法检索它。

我的问题是如何检索这个图像,这样我才能在全屏显示它?

提前感谢

代码语言:javascript
复制
_isMediaMessage char '\x01' '\x01'
_senderId __NSCFString * "7CjXUi6426" 0x7874b730
_senderDisplayName __NSCFString * "Test3" 0x7874b8b0
_date __NSDate * 2015-07-27 13:28:46 UTC 0x78707d20
_text id 0x0 0x00000000
_media JSQPhotoMediaItem * 0x78725d90 0x78725d90
JSQMediaItem JSQMediaItem

NSObject NSObject

_appliesMediaViewMaskAsOutgoing BOOL YES '\x01'
_cachedPlaceholderView UIView * nil 0x00000000
**_image UIImage * 0x7887de40 0x7887de40**
NSObject NSObject

_imageRef __NSCFType * 0x78e67260 0x78e67260
_scale float 1 1
_traitCollection UITraitCollection * 0x78743a10 0x78743a10
_imageAsset UIImageAsset * nil 0x00000000
_cachedImageView UIImageView * 0x788b61a0 0x788b61a0
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-07-30 23:59:09

似乎有人有一个类似的问题被这里回答了。本质上,您可以检查JSQMessage对象是否附加了媒体,然后将其转换为JSQPhotoMediaItem并从那里访问图像。

以下是jessesquires回答的目标-C代码:

代码语言:javascript
复制
JSQMessage *message = [messages objectAtIndex:indexPath.row];

if (message.isMediaMessage) {
  id<JSQMessageMediaData> mediaItem = message.media;

  if ([mediaItem isKindOfClass:[JSQPhotoMediaItem class]]) {
    JSQPhotoMediaItem *photoItem = (JSQPhotoMediaItem *)mediaItem;
    UIImage *image = photoItem.image;
    // do stuff with the image
  }
}
票数 4
EN

Stack Overflow用户

发布于 2016-12-15 11:50:43

Swift 3

代码语言:javascript
复制
let message =  self.messages[indexPath.row]
    if message.isMediaMessage == true{
        let mediaItem =  message.media
        if mediaItem is JSQPhotoMediaItem{
            let photoItem = mediaItem as! JSQPhotoMediaItem
             let image:UIImage = photoItem.image //UIImage obtained. 
         }

    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31688224

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档