Facebookで共有アプリを実装しようとしています。このコードを使用してスクリーンショットを撮りました。
CGSize imageSize = CGSizeMake(self.view.bounds.size.width, self.view.bounds.size.height);
UIGraphicsBeginImageContext(imageSize);
[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
iOS 6 では問題なく動作しますが、iOS 7 では画像が非常に悪く見えます。私はこの回答を使用しました: iOS: プログラムでスクリーンショットを作成するための最速で最もパフォーマンスの高い方法は何ですか? それを修正しようとして、それは助けになりましたが、それでもスクリーンショットは悪く見えます。画面が別の色になり、一部のオブジェクト (ラベルなど) が撮影した画像に表示されません。何か助けはありますか?
- - アップデート - -
ほとんどのオブジェクトを、weak ではなく保持するように変更することで解決できました。私の主な問題は、大きな白いブロックとして表示される私のテーブルビューのままでした(白いテキストのラベルが付いた透明であるはずなので、白いセルしか見えません)。テーブルの背景をクリアカラーとして定義しようとしましたが、役に立ちません..
- - 最後の更新 - -
ここには、私の問題とはまったく関係のない素晴らしい回答があります。プロジェクトがこの時点でプロジェクト SDK を切り替えるには多大な労力がかかるため、iOS7 SDK を使用せずに iOS7 で動作するデバイスで動作させたいと考えました。ほぼ完了です。
とにかく、私は最終的に私の問題を解決したコードの平和を追加しました:
この変更は単に問題を解決します:
UIGraphicsBeginImageContextWithOptions(imageSize, NO , 0.0f);
それ以外の:
UIGraphicsBeginImageContext(imageSize);