2016-05-02 12 views
0

私は現在の画面に表示されているものを描画するためにサイドプロジェクトに取り組んでいます。しかし、UIGraphicsBeginImageContextWithOptionsはその画面の内容だけを取得し、画面全体を取得します。図面ビューにはさらに多くのUI要素が含まれており、描画されていません。私はそれをどのように処理すべきか考えているだけです。ここでiOS上のすべてのUI要素を使って画面全体に描画する方法は?

は(自己のUIViewのインスタンスである)私は現在のコンテキストを取得するために使用する方法です:

UIGraphicsBeginImageContextWithOptions(self.bounds.size, NO, [UIScreen mainScreen].scale); 

答えて

1

あなたが最初の画面全体をカバーするUIViewを持っている必要があります。次に、UIView全体を描画することができます。どのUIViewを使用していますか?画面全体をカバーするUIViewを作成するには

、あなたは、メインウィンドウ([UIApplication sharedApplication].keyWindow)にサブビューを追加したり、あなたがnavigationControllerにいる場合はビュー階層([self.navigationController.view addSubview:overlayView])へのオーバーレイとしてビューを追加する必要がありますどちらか。 this post

+0

私は複雑すぎると思っていました。私は画面全体をキャプチャして、 'drawRect'の中に描画しようとしていました。あなたのやり方は理にかなっています。最も重要なのは、効率的です。それはCPUを夢中にさせません。 –

+1

BTW、 '[self.layer renderInContext:UIGraphicsGetCurrentContext()];'はこのトリックを行うことができます。しかし、それはちょうど画面をキャプチャするために使用されます。さらに悪いことに、効率的ではありません。 –

関連する問題