Qualcuno conosce un modo o ha un'idea creativa su come ottenere una UIImage che viene renderizzata da UIWebView? Il problema è che deve essere su un thread in background.Creare un UIImage rendendo UIWebView su un thread in background - iPhone
Elaborerò: Sto cercando di ottenere l'immagine da più UIWebViews ogni secondo + -, e visualizzarla sullo schermo (ovviamente iPhone). Poiché il rendering di un livello in un CGContext è un lavoro che consuma CPU, non vorrei utilizzare il thread principale, quindi non appendere l'interfaccia utente.
I miei tentativi finora sono state:
Ho cercato di usare
renderInContext
sul livello del WebView alUIGraphicalContext
, ma l'errore_WebTryThreadLock
caduto le visualizzazioni.Ho provato a creare uno
CGBitmapContext
ea renderlo il livello della vista web, ma ho ottenuto lo stesso risultato.Ho provato ad implementare un metodo
copy
(aggiungendo una categoria) aCALayer
, che ha copiato in profondità tutte le proprietà pubbliche e i sottolivelli. Successivamente, ho provato a eseguire lorenderInContext
livello che ho copiato. Ho ottenuto un UIImage che era parzialmente "corretto" - ovvero non tutti i livelli sono stati renderizzati, quindi ad esempio, otterrei solo l'intestazione del sito Web (o il piè di pagina, o corpo o barra di ricerca, o solo alcuni di le cornici). Il livello di UIWebview consiste di tutti i tipi di CALayer sottoclassi, quindi questo è probabilmente il motivo per cui questo approccio non ha funzionato.Ho provato a impostare
kCATransactionDisableActions
in unCATransaction
, ma non sembra modificare questo comportamento (nessuno di loro).
Sono abbastanza vicino a rinunciare.
C'è un salvatore tra voi?
+1 domanda difficile –