私のプロジェクトにはUIImages
という2つ、imageView
という名前のもの、Birdie
という名前のプロジェクトがあります。2つのUIImageViewsをマージして保存する
- (UIImage *)addImage:(UIImage *)imageView toImage:(UIImage *)Birdie {
UIGraphicsBeginImageContext(imageView.size);
// Draw image1
[imageView drawInRect:CGRectMake(0, 0, imageView.size.width, imageView.size.height)];
// Draw image2
[Birdie drawInRect:CGRectMake(0, 0, Birdie.size.width, Birdie.size.height)];
UIImage *resultingImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return resultingImage;
}
-(void)captureScreen{
UIImageWriteToSavedPhotosAlbum(resultingImage, nil, nil, nil);
}
これは私のコードです。captureScreen
ボタンは画像を保存するためのボタンです。 resultingImage
は宣言されていないので動作しませんが、私はこれを修正する方法がわからないので、Xcodeの新機能です。
事前に感謝します。
のようなアクションは、私の質問に答えてくれてありがとう。私はあなたが投稿したものと 'captureScreen'コードを置き換えようとしました。しかし、ボタンを押すとアプリケーションがクラッシュするようです。 もう一度おねがいします! – Tim
クラッシュレポートには何が表示されますか? – Ravin
トップコード(-UIImage ...): "'imageView'のローカル宣言はインスタンス変数を隠します。" "ローカル宣言 'Birdie'はインスタンス変数を隠します。"ボタンボイドの部分では、「Objective-C型の構造体「struct UIImageView *」と互換性があり、構造体UIImage *が別のObjective-C型のaddImage:toImage: 'の引数1を渡すときに必要です。ありがとうございました! – Tim