// // DetailViewController.m // SDWebImage Demo // // Created by Olivier Poitrey on 09/05/12. // Copyright (c) 2012 Dailymotion. All rights reserved. // #import "DetailViewController.h" #import @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