2015-01-06 13 views
6

私はユーザーが見るように画面全体のイメージを取得しようとしています。次のコードは動作するはずですが、シミュレータでのみ動作します。 iOS 8.1を実行しているデバイスでこれを動作させるには、どうすればよいですか?UIScreenのsnapshotViewAfterScreenUpdatesは空白のスナップショットをデバイスに表示します

UIView *snapshot = [[UIScreen mainScreen] snapshotViewAfterScreenUpdates:YES]; 
CGSize outputSize = CGSizeMake([UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height); 
UIGraphicsBeginImageContextWithOptions(outputSize, NO, 0); 
[snapshot drawViewHierarchyInRect:CGRectMake(0.0, 0.0, outputSize.width, outputSize.height) afterScreenUpdates:YES]; 
UIImage *img = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 

代替戦略を試してみてはうれしいですが、キーは私がユーザーに見てもらいたいことです - キーボードとすべて。

乾杯

答えて

1
UIGraphicsBeginImageContextWithOptions(CGSizeMake(CGRectGetWidth(self.view.frame), CGRectGetHeight(self.view.frame)), NO, 1.0f); 
     [self.view drawViewHierarchyInRect:CGRectMake(0, 0, CGRectGetWidth(self.view.frame), CGRectGetHeight(self.view.frame)) afterScreenUpdates:NO]; 
     UIImage *snapshotImage = UIGraphicsGetImageFromCurrentImageContext(); 
+0

残念ながら、それはそれほど単純ではありません。私は、ユーザーが見ているように画面全体を望む - これは、あなたがまだステータスバーとキーボードがないので(私はUIScreenのメソッドを使用しようとしている)ルートビューを使用しても意味するビューをレンダリング。 –

+0

グーグルの場合、これは私がWKWebViewで持っていた黒いスクリーンショットの問題を修正しました。 – ninjaneer

関連する問題