[英]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]];
}
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.