2017-05-04 9 views
0

UIViewUIImageに変換したいのですが、ビューがバックグラウンドであり、ビューの階層をチェックしたときに空白が表示されています。 。 私がしたいのは、ビューをメモリに読み込んでイメージに変換することです。どのようにScreenShotのUIViewが表示されないのですかiOS

+0

のようなスクリーンキャプチャメソッドを呼び出す前にビューを初期化してください。最初にビューをレンダリングしてスクリーンショットを撮る必要があります。ナビゲーションスタックに移動して表示されようとしている場合、システムはビューをレンダリングします。これらの条件が十分でない場合、私はあなたの都合の良いカスタムレンダラーを作成する必要があるかもしれないことを恐れています。 'CoreGraphics'。 – holex

答えて

0

はこれを使用します。

- (UIImage*)snapShot:(UIView*)myView { 
    UIGraphicsBeginImageContext(myView.frame.size); 
    [myView.layer renderInContext:UIGraphicsGetCurrentContext()]; 
    UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 
    return viewImage; 
} 
+0

私は私の意見が記憶にないと言ったように – Saranjith

1

をあなたは自分の必要なフレームを使用してビューを初期化してからtargetViewとしてコードの下に渡す必要があります。

UIView *targetView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 320, 568)]; //Initilization 
UIImage *capturedImage = [self captureScreen:targetView]; //Call method 


- (UIImage *)captureScreen:(UIView*)targetView 
{ 
    UIView* captureView = targetView; 
    UIGraphicsBeginImageContextWithOptions(captureView.bounds.size, captureView.opaque, 0.0); 
    [captureView.layer renderInContext:UIGraphicsGetCurrentContext()]; 
    UIImage * screenshot = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 

    CGRect cropRect = CGRectMake(0 ,0 ,captureView.frame.size.width ,captureView.frame.size.height); 
    UIGraphicsBeginImageContextWithOptions(cropRect.size, captureView.opaque, 1.2f); 
    [screenshot drawInRect:cropRect]; 
    UIImage * customScreenShot = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 
    return customScreenShot; 
} 
+0

あなたは初期化のためのコードを教えてください – Saranjith

+0

@サランジス私の編集された答えを確認してください – vivek

+0

まだ動作していません..画像に黒い画面を得る – Saranjith

関連する問題