2016-09-02 8 views
0

Ich benutze JSQMessagesViewController, um eine Chat UI anzuzeigen.Wie Bilder von URL im Chat-Bildschirm anzuzeigen? Ich habe github und stackoverflow durchlaufen, aber nicht richtig bekommen, was wir brauchen? iWie lade ich Bild von URL in JSQMessagesviewController IOS

Relevante Links ging es durch https://github.com/jessesquires/JSQMessagesViewController/issues/476

und

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

Alle Gedanken sind willkommen

Antwort

1

Versuchen,

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; 

Referenz: https://github.com/jessesquires/JSQMessagesViewController/issues/1302

ODER

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]]; 
} 

Referenz: How to send Pictures using JSQMessagesViewController?

0

Lösung auf Swift 4

Sie können Bibliothek "SDWebImage" verwenden

Schreiben Sie an die Methode:
func Kollektion (_ Collection: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell

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

vergessen Sie nicht, um die Zelle zu JSQMessagesCollectionViewCell werfen –

Verwandte Themen