繁体   English   中英

如何从JSQMessagesviewController IOS中的URL加载图像

[英]How to load image from url in JSQMessagesviewController IOS

我正在使用JSQMessagesViewController显示聊天UI。如何在聊天屏幕中显示来自url的图像?我经历了github和stackoverflow,但没有正确获取我们需要的东西?

我通过的相关链接是https://github.com/jessesquires/JSQMessagesViewController/issues/476

https://github.com/jessesquires/JSQMessagesViewController/issues/582

欢迎任何想法

尝试,

 ZSSMessagesAvatarImage *avatarImage = [self.avatars objectForKey:message.senderId];
if (avatarImage.url) {

    [cell.avatarImageView setImageWithURLRequest:[NSURLRequest requestWithURL:avatarImage.url] placeholderImage:nil success:^(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *image) {

        cell.avatarImageView.image = image;

    } failure:nil];

}
cell.avatarImageView.clipsToBounds = YES;
cell.avatarImageView.layer.cornerRadius = 22;
cell.avatarImageView.hidden = NO;

参考: https : //github.com/jessesquires/JSQMessagesViewController/issues/1302

要么

 if(object[PF_CHAT_PICTURE])
{
UIImageView *imageView = [[UIImageView alloc] init];
NSString *imgUrl = [object[PF_CHAT_PICTURE] valueForKey:@"url"];

UIImage *image = [[SDImageCache sharedImageCache] imageFromDiskCacheForKey:imgUrl];
if(image == nil)
{
    NSURL *imageUrl = [NSURL URLWithString:imgUrl];

    [imageView setImageWithURL:imageUrl completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType)
    {
        JSQPhotoMediaItem *mediaItem = [[JSQPhotoMediaItem alloc] initWithImage:image];
        JSQMessage *message = [[JSQMessage alloc] initWithSenderId:user.objectId senderDisplayName:user[PF_USER_FULLNAME] date:object.createdAt media:mediaItem];
        [messages addObject:message];
    }];
}
else
{
    JSQPhotoMediaItem *mediaItem = [[JSQPhotoMediaItem alloc] initWithImage:image];
    message = [[JSQMessage alloc] initWithSenderId:user.objectId senderDisplayName:user[PF_USER_FULLNAME] date:object.createdAt media:mediaItem];
}
}
else
{
message = [[JSQMessage alloc] initWithSenderId:user.objectId senderDisplayName:user[PF_USER_FULLNAME] date:object.createdAt text:object[PF_CHAT_TEXT]];
}

参考: 如何使用JSQMessagesViewController发送图片?

Swift 4解决方案

您可以使用库“ SDWebImage”

写入方法:
func collectionView(_ collectionView:UICollectionView,cellForItemAt indexPath:IndexPath)-> UICollectionViewCell

cell.avatarImageView.sd_setImage(with: URL(string: "YOUR_URL"))
cell.avatarImageView.sd_setShowActivityIndicatorView(true)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM