Ничего себе, ответ был глупо прост ... копался повсюду, просматривая различные материалы, связанные с печатью / PDF ... потом мне пришло в голову, почему бы просто не установить представление В КОНТЕКСТЕ на sizeThatFits.Это сработало!
ПРЕДУПРЕЖДЕНИЕ: Нет гарантии, что вы не столкнетесь с проблемами памяти с этим, и я действительно рекомендую вам сделать это в пуле @autoreleasepool и рассмотреть возможность некоторого масштабирования, как я делаю в примере, но ЭТО РАБОТАЕТи вот на чем я остановился:
-(NSData *)getImageFromView:(UIView *)view // Mine is UIWebView but should work for any
{
NSData *pngImg;
CGFloat max, scale = 1.0;
CGSize viewSize = [view bounds].size;
// Get the size of the the FULL Content, not just the bit that is visible
CGSize size = [view sizeThatFits:CGSizeZero];
// Scale down if on iPad to something more reasonable
max = (viewSize.width > viewSize.height) ? viewSize.width : viewSize.height;
if( max > 960 )
scale = 960/max;
UIGraphicsBeginImageContextWithOptions( size, YES, scale );
// Set the view to the FULL size of the content.
[view setFrame: CGRectMake(0, 0, size.width, size.height)];
CGContextRef context = UIGraphicsGetCurrentContext();
[view.layer renderInContext:context];
pngImg = UIImagePNGRepresentation( UIGraphicsGetImageFromCurrentImageContext() );
UIGraphicsEndImageContext();
return pngImg; // Voila an image of the ENTIRE CONTENT, not just visible bit
}