Кто-нибудь знает способ или имеет творческую идею относительно того, как получить UIImage, отображаемый из UIWebView? Уловка в том, что это должно быть в фоновом потоке.
Я уточню: Я пытаюсь получать изображение из нескольких UIWebView каждую секунду + - и отображать его на экране (конечно, на iPhone). Поскольку рендеринг слоя в CGContext - это работа, потребляющая ресурсы ЦП, я бы не хотел использовать основной поток, чтобы не зависать пользовательский интерфейс.
Мои попытки были такими:
Я пытался использовать renderInContext
на слое webView в UIGraphicalContext
, но ошибка _WebTryThreadLock
привела к сбою веб-представлений.
Я попытался создать CGBitmapContext
слой webview к нему, но получил тот же результат.
Я попытался реализовать метод copy
(добавив категорию) в CALayer
, который глубоко скопировал все общедоступные свойства, и подслои. Впоследствии Я попытался renderInContext
скопированный мной слой. Я получил UIImage, который был частично «правильным» - это означает, что не все слои были отрисованы, поэтому, например, я бы получил только верхний колонтитул веб-сайта (или нижний колонтитул, или тело, или панель поиска, или просто некоторые кадры). Уровень UIWebview состоит из всевозможных подклассов CALayers, поэтому, вероятно, поэтому этот подход не сработал.
Я пытался установить kCATransactionDisableActions
в CATransaction
, но это не помогло Похоже, это поведение не меняет (ни один из них).
Я довольно близок к тому, чтобы сдаться.
Есть ли среди вас спаситель?