0

内部に 2 つの UIImageView を追加し、これから UIImage を作成する UIView を作成しようとしています。これが私が使用する方法ですが、空白の UIImage を取得します。

ここに私が使用するコードがあります:

-(UIImage*)getFinalImage{

    CGRect rect = CadreImage.frame;

    UIView *dynaView = [[UIView alloc] initWithFrame:rect];
    UIImageView *frontCadre = [[UIImageView alloc] initWithImage:TheImage];

    [dynaView addSubview:frontCadre];

    UIGraphicsBeginImageContextWithOptions(dynaView.bounds.size, dynaView.opaque, 0.0);
    [dynaView.layer renderInContext:UIGraphicsGetCurrentContext()];
    UIImage * img = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

    return img;
}

どんな助けでも大歓迎です。

ありがとう。

4

1 に答える 1

0

レイヤー/スクリーンショットを取得するために使用するコードは次のとおりです (これは画面全体であり、特定のレイヤーではなく、Retina ディスプレイを処理することに注意してください)。

if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)])
    UIGraphicsBeginImageContextWithOptions(self.view.window.bounds.size, NO, [UIScreen mainScreen].scale);
else
    UIGraphicsBeginImageContext(self.view.bounds.size);
[self.view.window.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

TheImage が nil でないことを確認するために、ブレークポイントを設定してプログラムをジャンプすることもできますか?

于 2012-07-17T16:50:12.520 に答える