UIWebViewからレンダリングされたUIImageを入手する方法について知っている人がいますか?キャッチは、それはバックグラウンドスレッド上にある必要があります。バックグラウンドスレッドでUIWebViewをレンダリングしてUIImageを作成する -
私は詳しく説明します: 私は毎秒複数のUIWebViewsから画像を取得しようとしています+、そして画面上に表示します(もちろんiPhoneです)。 CGContextへのレイヤーのレンダリングはCPUを消費するジョブなので、メインスレッドを使用したくないので、UIをハングしないようにします。
私の試みは、これまであった。
私は
UIGraphicalContext
へのWebViewの層の上にrenderInContext
を使用しようとしましたが、_WebTryThreadLock
エラーがwebviewsが墜落しました。CGBitmapContext
を作成して、webviewのレイヤーをレンダリングしましたが、同じ結果が得られました。私はメソッド(カテゴリを追加することによって)を
CALayer
に実装しようとしましたが、これはすべてのパブリックプロパティとサブレイヤを深くコピーしました。その後、私はコピーした層renderInContext
に行きました。 部分的にの「正しい」UIImageを取得しました。つまり、すべてのレイヤーがレンダリングされているわけではありません。たとえば、Webサイトのヘッダー(またはフッター、ボディ、検索バー、またはフレーム)。 UIWebviewのレイヤーは、サブクラス化されたCALayersのすべての並べ替えで構成されているので、これはおそらくこれがうまくいきませんでした。CATransaction
にkCATransactionDisableActions
を設定しようとしましたが、この動作は変更されていませんでした。
私はかなり諦めています。
あなたの中に救世主がいますか?
+1タフな質問 –