web-dev-qa-db-ja.com

UIImageとUIImageViewの違い

UIImageUIImageViewの違いは何ですか?誰かが例でそれを説明できますか?

31
ARC

例:

UIImage *bgImage = [UIImage imageNamed:@"[email protected]"];
UIImageView *backgroundImageView = [[UIImageView alloc] initWithImage:bgImage];
backgroundImageView.frame = [[UIScreen mainScreen] bounds];

UIImage概要

UIImageオブジェクトは、画像データを表示する高レベルの方法です。ファイル、Quartz画像オブジェクト、または受け取った生画像データから画像を作成できます。 UIImageクラスは、さまざまなブレンドモードと不透明度の値を使用して現在のグラフィックスコンテキストに画像を描画するためのいくつかのオプションも提供します。

画像オブジェクトは不変なので、作成後にプロパティを変更することはできません。つまり、通常は初期化時に画像のプロパティを指定するか、画像のメタデータに依存してプロパティ値を提供します。ただし、場合によっては、UIImageクラスは、プロパティのカスタム値を使用する画像のコピーを取得するための便利なメソッドを提供します。

画像オブジェクトは不変であるため、基礎となる画像データへの直接アクセスも提供しません。ただし、UIImagePNGRepresentation関数とUIImageJPEGRepresentation関数を使用して、画像データのPNGまたはJPEG表現を含むNSDataオブジェクトを取得できます。

システムは、画像オブジェクトを使用して、サポートされているデバイスのカメラで撮影された静止画を表します。写真を撮るには、UIImagePickerControllerクラスを使用します。画像を[保存された写真]アルバムに保存するには、UIImageWriteToSavedPhotosAlbum関数を使用します。

UIImageView概要

UIImageViewは、単一の画像を表示するため、または一連の画像をアニメーション化するためのビューベースのコンテナーを提供します。画像をアニメーション化するために、UIImageViewクラスはアニメーションの継続時間と頻度を設定するためのコントロールを提供します。また、アニメーションを自由に開始および停止できます。

新しい画像ビューオブジェクトは、デフォルトでユーザーイベントを無視するように設定されています。 UIImageViewのカスタムサブクラスでイベントを処理する場合は、オブジェクトの初期化後に、userInteractionEnabledプロパティの値を明示的にYESに変更する必要があります。

UIImageViewオブジェクトがその画像の1つを表示する場合、実際の動作は画像とビューのプロパティに基づいています。画像のleftCapWidthまたはtopCapHeightプロパティのいずれかがゼロ以外の場合、画像はこれらのプロパティの値に従って拡大されます。それ以外の場合、画像は、ビューのcontentModeプロパティに従って、画像ビューで拡大縮小、サイズ調整、または配置されます。すべて同じサイズの画像を使用することをお勧めします(必須ではありません)。画像のサイズが異なる場合、そのモードに基づいて、それぞれが個別に合うように調整されます。

UIImageViewオブジェクトに関連付けられているすべての画像は、同じ縮尺を使用する必要があります。アプリケーションで異なる縮尺の画像を使用している場合、画像が正しくレンダリングされないことがあります。

29
chown

つまり、次のように、画像のデータを保持するUIImageオブジェクトのインスタンスを作成します。

 NSString *sourcePath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"/picture.jpg"]; //assuming your image is in your app's bundle
UIImage *img = [[UIImage alloc]initWithContentsOfFile:sourcePath];

次に、IBまたはコードを使用してUIImageViewのインスタンスを作成し、次のように画面に画像を表示します。

[imageView1 setImage:img];  //assume you already create an instance of UIImageView named imageView1
13
user523234

UIImageには画像のデータが含まれます。 UIImageViewは、UIImageを表示するためのカスタムビューです。

13
Geekswordsman

UIImageオブジェクトは画像からのデータ(つまり、PNGファイルからのデータ)を格納します

UIImageViewオブジェクトは、UIImageを表示するために使用されます

7
eazimmerman

UIImageは、画像のバイトを保持するデータオブジェクトです。

UIImageViewは、UIImageデータを表示するコントロールです。

5
logancautrell

UIImageはデータを(画像)のように保持し、UIImageViewに表示します。

UIImageViewは、画像を表示するためのコンテナの一種です。

0
Kaviraj Pandey
UIImageView *myImage = [[UIImageView alloc]init];
[myImage setImage:[UIImage imageNamed:@"1.png"]];

「myImage」としてUIImageViewのインスタンスを作成します。これはデータを表示するのに役立ちます。UIImageは、xcodeのアセットファイルから1.pngのデータを保持するのに役立ちます。

0
kurupareshan

UIimageは、データ(Jpg、png ...)およびプロパティとしてUIImageを含むUIImageViewクラスを格納するオブジェクトです。 UIImageViewは複数のUIImageを持つことができ、UIImageは不変です。それはずっと前に私を悩ませました、なぜあなたがイメージを作成するときあなたがするのですか:var image:UIImageView!

しかし、あなたがその「画像」を実行すると、あなたはimage.image = UIImage.init(named: "image")を実行します

0