0

次のコードを使用して、View Controller の 1 つのスクリーンショットを撮り、後で別のビューで表示しています。UIGraphicsBeginImageContextWithOptions メソッドの場合、スケールとして 1.0 をフィードすると、結果の画像がぼやけて見えます。ただし、スケールとして 0.0 を指定すると、結果の画像は画面よりも大きくなり、別のビューで表示するとその一部が表示されます。これを修正する方法はありますか?

CGSize imageSize = [[UIScreen mainScreen] bounds].size;
if (NULL != UIGraphicsBeginImageContextWithOptions) {
    UIGraphicsBeginImageContextWithOptions(imageSize, NO, 1.0);
} else {
    UIGraphicsBeginImageContext(imageSize);
}

[_displayViewController.view.layer renderInContext:UIGraphicsGetCurrentContext()];

// Retrieve the screenshot image
UIImage *screenImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
4

1 に答える 1

1

実際に私が使用している場合

UIGraphicsBeginImageContextWithOptions(self.view.bounds.size, self.view.opaque, 0.0);

画像は鮮明に見えますが、このスクリーンショットは画面に表示されているもののみをカバーし、画面外に隠れているものはカバーしていません.

サイズをUIViewのサイズに変更すると、上記の問題も発生します。

于 2012-06-08T08:28:15.337 に答える