0

このコードでスクリーンショットを撮っています

- (UIImage *)screenshot {
    UIGraphicsBeginImageContext(self.bounds.size);
    [self.layer renderInContext:UIGraphicsGetCurrentContext()];
    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return image;
}

しかし、結果の画像にはアルファ効果とぼかし効果が正しく表示されていません

これを修正する方法はありますか?

4

1 に答える 1

2

「renderInContext」のドキュメントを調べると、アニメーションなどに関していくつかの欠点があることがわかります。レイヤーのスクリーンショットを直接撮る必要がない場合は、これで試してください

- (UIImage *)screenshot {
    UIGraphicsBeginImageContextWithOptions(self.view.frame.size, YES, 0);
    [self.view drawViewHierarchyInRect:self.view.frame afterScreenUpdates:NO];
    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return newImage;
}
于 2013-10-03T08:45:23.090 に答える