| // |
| // 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 |