Конвертировать содержимое UIWebview в UIImage

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

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

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

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

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

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

2 ответа

Решение
UIGraphicsBeginImageContext(webview.bounds.size);
[webview.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

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

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

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

например

[UIView setAnimationTransition:transition forView:self.view cache:YES];
Другие вопросы по тегам