Конвертировать содержимое UIWebview в UIImage - PullRequest
10 голосов
/ 13 мая 2009

Я использую UIWebView для отображения текста в формате HTML. Я не загружаю веб-страницу, а просто предоставляю строку HTML в UIWebView.

Теперь я хочу анимировать этот UIWebView на экране, фактически несколько из них (2-10 за один раз). UIWebView немного тяжел, и хотя я еще не пробовал, я планирую худшее. (Я не думаю, что это преждевременная оптимизация, я почти уверен, что это будет проблемой)

Чтобы обойти эту проблему, я решил, что мог бы преобразовать содержимое UIWebViews в UIImages и анимировать их вместо этого.

Итак, мои вопросы:

  1. Как конвертировать UIWebview содержимое в UIImage (или CGImageRef)?
  2. Мои UIWebViews имеют прозрачные задние фонари прозрачность переносится на UIImage

Спасибо за любые предложения

Ответы [ 2 ]

21 голосов
/ 13 мая 2009
UIGraphicsBeginImageContext(webview.bounds.size);
[webview.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

Вы можете столкнуться с проблемами, если размеры веб-просмотра велики, потому что веб-просмотр использует CATiledLayer, который не рисует все по причинам памяти.

Изображение будет включать прозрачность

0 голосов
/ 14 мая 2009

Я могу ошибаться, но если вы установите параметр кэширования CoreAnimation, ОС справится с этой оптимизацией.

, например

[UIView setAnimationTransition:transition forView:self.view cache:YES];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...