iPhoneのスクリーンショットをキャプチャする方法を探しています。現在、次のコードを使用しています。ステータスバーを含むiPhone画面をキャプチャしますか?
UIGraphicsBeginImageContext(self.view.bounds.size); //self.view.window.frame.size
[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
UIImageWriteToSavedPhotosAlbum(viewImage, nil, nil, nil);
上記のコードは、iPhone UIViewのスクリーンショットを正常に取得しますが、一番上のステータスバーを含めてください(その場所は空白の20ピクセルのスペースです)。
を私はこのプライベートAPIについて読みます私はAppleが私的なAPI機能を使ってiPhone用のアプリケーションを受け入れるかどうか知りたいのですが、 –
プライベートAPIを使用すると気分が変わります。 1)プライベートAPIの使用は、アップルのルールに違反し、あなたのアプリが拒否されるか、店舗から引き出されるという明らかな方法の1つです。しかし... 2)スクリーンショットのような単純なものは、レーダーの下を飛行し、改造者に気付かれない可能性があります。まだ... 3)アップルは、何らかの理由で、何らかの警告を出さずに、将来的にいつでも、そのAPIを変更することができます。プライベートAPIを使用すると、頭痛の種になり、ユーザーエクスペリエンスが低下する可能性があります。 –
この特定のケースでは、機能が動的にアクセスされ、失敗が説明されている場合、多くのリスクはないと考えています。アプリは標準の方法を使用してスクリーンショットに戻ることができます。私の答えでそれを具体的に実装するには静的なリンクが使われていますが、それは読者のための練習です。 – rpetrich