Birisi bir yolu biliyor mu, yoksa bir UIWebView'dan görüntülenen bir UIImage nasıl elde edileceğine dair bir fikir mi var? Yakalama, bir arka plan iş parçacığı üzerinde olmalıdır.Bir arka plan iş parçacığında UIWebView oluşturarak bir UIImage oluşturun - iPhone
Detayı geçeceğim: Her iki saniyede birden fazla UIWebViews görüntüsünü elde etmeye çalışıyorum + - ve ekranda (iPhone'un elbette) göstermeye çalışıyorum. Bir katmanı bir CGContext'e işlemek, CPU kullanan bir iş olduğundan, ana iş parçacığı kullanmak istemiyorum, böylece kullanıcı arabirimini asmamalıyım.
Benim girişimleri defa idi:
Ben
UIGraphicalContext
için WebView katman üzerinderenderInContext
kullanmaya çalıştı ama_WebTryThreadLock
hata webviews çöktü.Bir
CGBitmapContext
oluşturmayı denedim ve web görünümünün katmanını oluşturmaya çalıştım, ancak aynı sonucu aldım.- O derin kamu özellikleri ve alt katmanlar tüm kopyalanmış
CALayer
(a Kategori ekleyerek) bircopy
yöntemi uygulayan çalıştı. Daha sonra, kopyaladığım katmanrenderInContext
'u denedim. kısmen "doğru" olan bir UIImage aldım - yani, tüm katmanların oluşturulmadığı anlamına gelir, örneğin, yalnızca web sitesi üstbilgisini (veya altbilgiyi veya gövdeyi veya arama çubuğunu veya yalnızca bir kısmını alırdım çerçeveler). UIWebview'in katmanı her çeşit alt sınıf CALayer'dan oluşur, bu yüzden bu yaklaşımın neden işe yaramadığı muhtemelen muhtemeldir. (Ikisi de) - Ben
CATransaction
içindekCATransactionDisableActions
ayar denedik ama bu davranışı değiştirmek için görünmedi.
Vazgeçmeye çok yakınım.
Aranızda bir kurtarıcı var mı?
+1 sert soru –