2012-10-25 3 views
0

есть много тем о том, как сохранить представление в качестве изображения. И все они дают один и тот же ответ:Сохранить как изображение в исходном размере

CGRect rect = [myView bounds]; 
UIGraphicsBeginImageContextWithOptions(rect.size,YES,[[UIScreen mainScreen] scale]); 
CGContextRef context = UIGraphicsGetCurrentContext(); 
[myView.layer renderInContext:context]; 
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 

моя проблема заключается в том, что у меня есть мнение, что содержит несколько соединенных imageViews, которые содержат изображения. Я хочу сохранить этот вид «держателя» в размере, соответствующем размеру изображений, находящихся внутри него. Поэтому, если у меня есть 2 изображения 400x400 бок о бок, я хотел бы сохранить изображение 400x800, независимо от того, что они отображаются, скажем, 30x60.

Плюс вышеуказанный код только фиксирует то, что находится на экране, и оставляет остальное. Например, если бы я хотел получить весь профиль прокрутки с его размером содержимого, это невозможно.

любые идеи?

ответ

0

Если вы хотите получить изображение всего контентаРазмер UIScrollView, взгляните на this.

+0

Спасибо. Но ваш опубликованный поток не решает проблему. UIGraphicsGetCurrentContext() фиксирует только то, что находится на экране. Единственный способ использовать его - подогнать вид на экран, но тогда разрешение ухудшается. Мне нужна альтернатива. –

+0

Этот фрагмент захватывает все содержимое прокрутки и сохраняет его в UIImage. Кажется, что вы захватываете только границы своего представления, а не весь контент в scrollview. – Mat

+0

Я прекрасно понимаю это. Вот почему я задаю вышеупомянутый вопрос. Если я задаю размер прямоугольника, скажем, scrollview.contentSize, он действительно сделает изображение такого размера, но все вне границ будет пустое. Я не могу подчеркнуть, что я ищу альтернативу, потому что UIGraphicsGetCurrentContext() получает только то, что находится на экране. –

Смежные вопросы