2011-12-21 21 views
3

私は1 UIImageViewと1ツールバーを持つxibを持っています。 ツールバーには、保存とリセットの2つのボタンがあります。
シミュレータでは、私はUIImageViewの画像上にいくつかの描画を行うことができます。 これでリセットボタンをクリックすると、イメージに変更を保存しなかった場合、元のイメージが表示されます。 ビュー全体を再度ロードしたくありません。 編集した画像を元の画像に置き換える必要がありますか? どうすればこのことができますか教えてください。ビュー全体をロードせずにUIImageViewで画像をリセットするにはどうすればいいですか?

+0

をリフレッシュするために、再度このコードを試してみてください?私がキャッチされない例外により「NSInvalidArgumentException」、理由にあなたの '終了アプリのようなコードを追加した後に、このエラーを取得 – Sulthan

答えて

11
IBOutlet UIImageView *imageView; 

imageView.image=[UIImage imageNamed:@"img.png"]; 

[imageView setNeedsDisplay]; 
+4

のために働いたが、setNeedsDisplay''への呼び出しが必要とされていません。 'UIImageView'は、新しいイメージが割り当てられたときに自身を更新します。 – Dondragmer

+1

ありません、それはしていません、それは次のdrawcycleを待つ必要があるとして、この方法は非常に遅いです。 – FaddishWorm

+1

@FaddishWorm idは、実際には.. – Fengson

0

このアップインターフェイスビルダーであなたのXIBファイルを持つとあなたはIBでそのイメージ図を参照するためにmyImageViewを使用することができます

myImageView.image=originalImage; 
[myImageView setNeedsDisplay]; 

で画像を変更

IBOutlet UIImageView *myImageView; 

フックを使用してIBOutletを作成します。

+0

メートル:「 - [NSCFStringスケール]:認識されていないセレクタはインスタンス0x10cb04に送られた」 ' –

+0

感謝。あなたのコードは正常に動作しています。私のコードには別の問題がありました。 –

0

は、あなただけのオリジナルの画像にUIImageViewの画像プロパティを設定することができます。

UIImageView *imageView = [UIImageView new]; 
[imageView setImage:origingalImage]; 
+0

私はこれを試しました。しかし、私は動作しませんでした。私はnibファイルのUIImageViewでイメージを変更したいと思います。ここでは、新しいUIImageViewを作成しています。 –

+1

myImageView.image = [UIImage imageNamed:@ "origionalImageName.png"]; それを、それが働いた –

4
UIImageView *imageView; 
imageView.image=[UIImage imageNamed:@"one.png"]; 

のorignal画像でリフレッシュ。それが動作しない場合はuがこの

[imageView reloadInputViews]; 

を試してみましたあなたは「もう一度ビュー全体をロードする」とはどういう意味ですか

imageView.image=[UIImage imageNamed:@"one.png"]; 
+0

感謝します。 1作品 –

+0

'[ImageViewのreloadInputViews];' または**辞任コード** – dayitv89

+0

'reloadInputViews'は私これは動作します – youssman

関連する問題