2

ユーザーの場所を描画しているMKMapViewでスクリーンショットを撮ろうとしていますが、BreadCrumbsクラスのCrumbPathクラスとCrumbPathViewオーバーレイクラスおよびオーバーレイビュークラスを使用してパスを描画します。

スクリーンショットを取得するために使用しているコードは次のとおりです。

if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)])
    UIGraphicsBeginImageContextWithOptions(self.view.frame.size, NO, [UIScreen mainScreen].scale);

else
    UIGraphicsBeginImageContext(self.view.frame.size);

[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage * viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIImage * croppedImage = [Utils cropImage:viewImage withFrame:_map.frame];    
UIGraphicsEndImageContext();
UIImageWriteToSavedPhotosAlbum(croppedImage, nil, nil, nil);

私が取得しようとしているScreenShotは次のようになります。

ここに画像の説明を入力してください

しかし、私が取得するScreenShotは次のようになります。

ここに画像の説明を入力してください

ここでは、スクリーンショットに青い線(ユーザーロケーションパス)がないことがわかります。

誰かが私が解決策を提案するのを手伝ってもらえますか、または私がここで間違っていることは何ですか?

みんな、ありがとう。

4

1 に答える 1

1

これを私のカスタムメソッドを使用して、現在のビューの画像を返します。

- (UIImage *)captureView {

   //hide controls if needed
    CGRect rect = [self.view bounds];

    UIGraphicsBeginImageContext(rect.size);
    CGContextRef context = UIGraphicsGetCurrentContext();
    [self.view.layer renderInContext:context];   
    UIImage *img = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return img;

}
于 2012-12-05T06:31:48.127 に答える