Вид может иметь только один вид сверху; это означает, что вы не можете сделать это дважды.
Самый простой способ сделать то, что вы просите, чтобы сделать его к изображению, и что дисплей это изображение в другом месте:
#include <QuartzCore/CALayer.h>
...
UIGraphicsBeginImageContext(webview.frame.size);
[webview.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage * img = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
Предостережения:
- UIWebView использует WebKit для отображения асинхронно плитка; приведенный выше код только отображает существующие фрагменты. Если WebKit еще не отобразил плитки, вы просто получите белый цвет. Возможно, вам придется запускать его на таймере или что-то в этом роде (и тогда он все равно будет не таким надежным).
- Для поддержки «сетчатки» вам необходимо использовать
UIGraphicsBeginImageContextWithOptions()
. Количество обручей, которые вам нужно перепрыгнуть, чтобы поддерживать сборки 3.x/4.x и 4.x, - это немного боль.
- Масштабирование изображения - это упражнение для читателя.
- Создание меньшего контекста изображения и изменение преобразования CGContext должно быть еще лучше. Он также оставлен в качестве упражнения для читателя.