Это код, который я использую для захвата изображений UIView:
if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)])
UIGraphicsBeginImageContextWithOptions(self.view.bounds.size, NO, [UIScreen mainScreen].scale);
else
UIGraphicsBeginImageContext(self.view.bounds.size);
CGContextRef context = UIGraphicsGetCurrentContext();
[view.layer renderInContext:context];
UIImage *img = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return img;
Ваш код выглядит хорошо для меня. Вы можете попробовать поменять мой, чтобы посмотреть, поможет ли это, но я бы назвал это отдельной проблемой от кода, который вы опубликовали.