Tips for Lazy Loading of Images in IOS

Tips for Lazy Loading of Images in IOS

1. Create a new Xcode Project, Single View Application template and add a tableview.

2. Create a custom table view cell.

3. Download SDWebImage latest framework here. (https://github.com/rs/SDWebImage/wiki/Download-Complied-Framework)

Assuming everything’s done, what’s left for us to do is to include SDWebImage Library and use it in our project.

4. Right-click to your Project Navigator, Add Files to your project.

Add “SDWebImage.framework” from the one you downloaded from Step 3. Check “Copy items into destination group’s folder (if needed)”

5. In our project’s Build Phases, under Link Binary With Libraries, click the ( + ) button.

And add “ImageIO.framework.”

6. In our Project’s Build Settings, search for “Other Linker Flags,” double-click the right area of the “Other Linker Flags,” click ( + ) button and input -ObjC

7. In the source files where you need to use the library,

#import <SDWebImage/UIImageView+WebCache.h>

8. Add an image file that will be used as our “placeholder” image. This image will be shown while the image from the URL has not yet finished loading.

9. Add entries to your array that holds the important information like the URL of the images you want to load.

- (void)viewDidLoad

{

[super viewDidLoad];

// Do any additional setup after loading the view, typically from a nib.

items = [[NSMutableArray alloc] init];

[items addObject:@"http://i0.wp.com/hypebeast.com/image/2013/01/hot-toys-iron-man-3-mark-xlii-collectible-bust_1.jpg?w=1410"];

[items addObject:@"http://t0.gstatic.com/images?q=tbn:ANd9GcT4PZc648WRoXzxEdLQA9zMGqBx93_um_HxvsjgYhoY3AvDtkzI"];

[items addObject:@"http://i0.wp.com/hypebeast.com/image/2013/03/hot-toys-iron-man-3-iron-patriot-collectible-bust-2.jpg?w=930"];

[items addObject:@"http://t3.gstatic.com/images?q=tbn:ANd9GcTf_6e7G9pIiw7ZlRRPfdq63NP-jRA6tmstL1ji-ZFEVnTkDjSp"];

[items addObject:@"http://4.bp.blogspot.com/-KlZshKtr0DM/UWDGlG1YqtI/AAAAAAAAAFc/Qt89IIY3s6s/s1600/iron-man-3.jpg"];

}

10. Edit our tableview’s cellForRowAtIndexPath…

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{

static NSString *CellIdentifier = @"MyImageCell";

ImageCell *cell = (ImageCell *) [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

if (cell == nil) {

NSArray* topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"ImageCell" owner:self options:nil];

for (id currentObject in topLevelObjects) {

if ([currentObject isKindOfClass:[UITableViewCell class]]) {

cell = (ImageCell *)currentObject;

break;

}

}

}

// Here we use the new provided setImageWithURL: method to load the web image

[cell.imageView setImageWithURL:[NSURL URLWithString:[items objectAtIndex:indexPath.row]]  placeholderImage:[UIImage imageNamed:@"yourimagename.jpg"]];

cell.imageSource.text = [items objectAtIndex:indexPath.row];

return cell;

}

11. Hit Run!

tips & tricks

Join 7,719 other subscribers

interview questions


Algorithm Android Android Studio API APP Programming Apps blogging Browser CheatSheets Code Config CSS DATABASE dsa error Features HTML HTML5 IDE installation Interview Questions IOS iPhone javascript Mac objective-c OneDrive OS Placeholder Programming quicktips SDK SEO Settings SMO SQL swift swiftUI Teams Tips & Tricks Tools UI Web Wordpress Xcode


Archives

Leave a Reply

Your email address will not be published. Required fields are marked *

Discover more from CODE t!ps

Subscribe now to keep reading and get access to the full archive.

Continue reading