Replace –
SelectedThemesController— (replace your class name)
[SelectedThemesController processImageDataWithURLString:imgUrl andBlock:^(NSData *imageData){
if (self.view.window)
{
UIImage *image = [UIImage imageWithData:imageData];
if (!image) //not found show default image
{
pofferimg.image=[UIImage imageNamed:@”11_240X240.png”];
}
else //found
{
NSArray *subviewArray = [pofferimg subviews];
for (UIView *view in subviewArray){
if([view isKindOfClass:[UIActivityIndicatorView class]]){
UIActivityIndicatorView *activity = (UIActivityIndicatorView *)view;
[activity stopAnimating]; [activity removeFromSuperview];}
}
// How to find centre image in original image
UIImage *imageGNoff = image;
CGSize imageSize = imageGNoff.size;
CGFloat width = imageSize.width;
CGFloat height = imageSize.height;
if (width != height)
{
CGFloat newDimension = MIN(width, height);
CGFloat widthOffset = (width – newDimension) / 2;
CGFloat heightOffset = (height – newDimension) / 2;
UIGraphicsBeginImageContextWithOptions(CGSizeMake(newDimension,newDimension), NO, 0.);
[imageGNoff drawAtPoint:CGPointMake(-widthOffset, -heightOffset)blendMode:kCGBlendModeCopy
alpha:1.];
imageGNoff = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
}
pofferimg.image=imageGNoff;
}
}
}];
Declare following method as class method:
#pragma mark – Class Method
+(void)processImageDataWithURLString:(NSString *)urlString andBlock:(void (^)(NSData *imageData))processImage
{
NSString *imgUrl=urlString;
imgUrl=[imgUrl stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSURL *url = [NSURL URLWithString:imgUrl];
dispatch_queue_t callerQueue = dispatch_get_current_queue();
dispatch_queue_t downloadQueue = dispatch_queue_create(“com.myapp.processsmagequeue”, NULL);
dispatch_async(downloadQueue, ^{
NSData * imageData = [NSData dataWithContentsOfURL:url];
dispatch_async(callerQueue, ^{
processImage(imageData);
});
});
// dispatch_release(downloadQueue);
}