Конвертировать содержимое UIWebview в UIImage
Я использую UIWebView для отображения текста в формате HTML. Я не загружаю веб-страницу, а просто предоставляю строку HTML в UIWebView.
Теперь я хочу анимировать этот UIWebView на экране, на самом деле несколько из них (2-10 за один раз). UIWebView немного тяжел, и хотя я еще не пробовал, я планирую худшее. (Я не думаю, что это преждевременная оптимизация, я почти уверен, что это будет проблемой)
Чтобы обойти проблему, я решил преобразовать содержимое UIWebViews в UIImages и анимировать их.
Итак, мои вопросы:
- Как вы преобразуете содержимое UIWebview в UIImage (или CGImageRef)?
- Мои 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];