Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Load UIImage from URL in iOS

I am trying to load a UIImage from its URL with completionand placeholder image , but neither the UIImage nor the placeholder UIImage are loaded.

Here is my code:

  NSURL *url = [NSURL URLWithString:@"http://assets.gearlive.com/tvenvy/blogimages/stewiegriffin.jpg"];
  NSURLRequest *request = [NSURLRequest requestWithURL:url];

  [self.imageView setImageWithURLRequest:request placeholderImage:[UIImage imageNamed:@"bg.png"]

      success:^(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *image) {
          imageView.image = image;
      } 
      failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error) {}
   ];
like image 267
Ahd Radwan Avatar asked May 07 '15 09:05

Ahd Radwan


4 Answers

Try this code to get image...

Code:

NSURL *url = [NSURL URLWithString:@"http://www.fnordware.com/superpng/pnggrad16rgb.png"];

NSData *data = [NSData dataWithContentsOfURL:url];
UIImage *image = [UIImage imageWithData:data];

[self.imageview1 setImage:image];    

Note: i have used test url. you can use your url.

Update : Swift 3.0 Code :

let url = URL(string: "http://www.fnordware.com/superpng/pnggrad16rgb.png")
    do {
        let  data = try Data(contentsOf: url!)
        var image = UIImage(data: data)
        self.imageView.image = image
        print(image)
    } catch {

    }

Note : In Xcode version 7.1 and above you need to set ATS (App Transport Security). To set ATS you need write below code in info.plist file. Make sure url of image should not be nil.

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>
like image 176
Ashok Londhe Avatar answered Oct 05 '22 12:10

Ashok Londhe


Use AFnetworking where you can set placeholder image also if the url is not correct. This is more efficient when you are loading images in a tableview or a collection view.

Import UIImageView+AFNetworking.h

#import "UIImageView+AFNetworking.h"

and us the following code:

NSString *url1=@"http://www.fnordware.com/superpng/pnggrad16rgb.png";
[self.image setImageWithURL:[NSURL URLWithString:url1] placeholderImage:[UIImage imageNamed:@"placeholder.png"]]; 

You can download it from gitHub

like image 31
Akshay Karanth Avatar answered Oct 05 '22 13:10

Akshay Karanth


Check out AsyncImageView. Its the best async image loader AFAIK. all you have to do is set the image URL to the imageview and the rest is taken care of. including caching.

like image 37
ShahiM Avatar answered Oct 05 '22 12:10

ShahiM


I found the problem

My code is working correctly.

The problem was somewhere in my code , the ImageView was nil. Thanks all

like image 38
Ahd Radwan Avatar answered Oct 05 '22 11:10

Ahd Radwan