Подтвердить что ты не робот

Преобразование содержимого UIWebview в UIImage

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

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

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

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

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

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

4b9b3361

Ответ 1

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

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

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

Ответ 2

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

например.

[UIView setAnimationTransition:transition forView:self.view cache:YES];