| // | |
| // DetailViewController.m | |
| // SDWebImage Demo | |
| // | |
| // Created by Olivier Poitrey on 09/05/12. | |
| // Copyright (c) 2012 Dailymotion. All rights reserved. | |
| // | |
| #import "DetailViewController.h" | |
| #import <SDWebImage/UIImageView+WebCache.h> | |
| @interface DetailViewController () | |
| - (void)configureView; | |
| @end | |
| @implementation DetailViewController | |
| @synthesize imageURL = _imageURL; | |
| @synthesize imageView = _imageView; | |
| #pragma mark - Managing the detail item | |
| - (void)setImageURL:(NSURL *)imageURL | |
| { | |
| if (_imageURL != imageURL) | |
| { | |
| _imageURL = imageURL; | |
| [self configureView]; | |
| } | |
| } | |
| - (void)configureView | |
| { | |
| if (self.imageURL) { | |
| __block UIActivityIndicatorView *activityIndicator; | |
| __weak UIImageView *weakImageView = self.imageView; | |
| [self.imageView sd_setImageWithURL:self.imageURL | |
| placeholderImage:nil | |
| options:SDWebImageProgressiveDownload | |
| progress:^(NSInteger receivedSize, NSInteger expectedSize) { | |
| if (!activityIndicator) { | |
| [weakImageView addSubview:activityIndicator = [UIActivityIndicatorView.alloc initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray]]; | |
| activityIndicator.center = weakImageView.center; | |
| [activityIndicator startAnimating]; | |
| } | |
| } | |
| completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) { | |
| [activityIndicator removeFromSuperview]; | |
| activityIndicator = nil; | |
| }]; | |
| } | |
| } | |
| - (void)viewDidLoad | |
| { | |
| [super viewDidLoad]; | |
| [self configureView]; | |
| } | |
| - (void)viewDidUnload | |
| { | |
| [super viewDidUnload]; | |
| self.imageView = nil; | |
| } | |
| - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation | |
| { | |
| return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown); | |
| } | |
| @end |