Разница между UIImage и UIImageView - PullRequest
28 голосов
/ 09 ноября 2011

В чем разница между UIImage и UIImageView? Может кто-нибудь объяснить это на примере?

Ответы [ 6 ]

28 голосов
/ 10 ноября 2011

Пример:

UIImage *bgImage = [UIImage imageNamed:@"Default@2x.png"];
UIImageView *backgroundImageView = [[UIImageView alloc] initWithImage:bgImage];
backgroundImageView.frame = [[UIScreen mainScreen] bounds];

UIImage Обзор :

A UIImage Объект - это высокоуровневый способ отображения данных изображения.Вы можете создавать изображения из файлов, из объектов изображений Quartz или из необработанных данных изображений, которые вы получаете.Класс UIImage также предлагает несколько параметров для рисования изображений в текущем графическом контексте с использованием различных режимов наложения и значений непрозрачности.

Объекты изображений являются неизменяемыми, поэтому вы не можете изменять их свойства после создания.Это означает, что вы обычно указываете свойства изображения во время инициализации или полагаетесь на метаданные изображения для предоставления значения свойства.Однако в некоторых случаях класс UIImage предоставляет удобные методы для получения копии изображения, в которой для свойства используются пользовательские значения.

Поскольку объекты изображения являются неизменяемыми, они также не обеспечивают прямой доступ к своему базовому изображению.данные.Однако вы можете получить объект NSData, содержащий представление данных изображения в формате PNG или JPEG, используя функции UIImagePNGRepresentation и UIImageJPEGRepresentation.

Система использует объекты изображения для представления неподвижных изображений, снятых камерой.поддерживаемые устройства.Чтобы сделать снимок, используйте класс UIImagePickerController.Чтобы сохранить изображение в альбом сохраненных фотографий, используйте функцию UIImageWriteToSavedPhotosAlbum.

UIImageView Обзор :

An UIImageViewпредоставляет контейнер на основе вида для отображения одного изображения или анимации серии изображений.Для анимации изображений класс UIImageView предоставляет элементы управления для установки продолжительности и частоты анимации.Вы также можете свободно запускать и останавливать анимацию.

Новые объекты просмотра изображений по умолчанию настроены на игнорирование пользовательских событий.Если вы хотите обрабатывать события в пользовательском подклассе UIImageView, вы должны явно изменить значение свойства userInteractionEnabled на YES после инициализации объекта.

Когда объект UIImageView отображает одинего изображений, фактическое поведение основано на свойствах изображения и представления.Если любое из свойств leftCapWidth или topCapHeight изображения не равно нулю, изображение растягивается в соответствии со значениями в этих свойствах.В противном случае изображение масштабируется, изменяется по размеру или размещается в представлении изображения в соответствии со свойством contentMode представления.Рекомендуется (но не обязательно) использовать изображения одинакового размера.Если изображения имеют разные размеры, каждое из них будет отрегулировано для подгонки отдельно в зависимости от этого режима.

Все изображения, связанные с объектом UIImageView, должны использовать один и тот же масштаб.Если ваше приложение использует изображения с разным масштабом, они могут отображаться неправильно.

13 голосов
/ 09 ноября 2011

UIImage содержит данные для изображения. UIImageView - это пользовательский вид, предназначенный для отображения UIImage.

12 голосов
/ 10 ноября 2011

Короче говоря: Вы создаете экземпляр объекта UIImage для хранения данных изображения, например:

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

Затем вы создаете экземпляр UIImageView либо через IB, либо через код для отображения вашего изображения на экране, например:

[imageView1 setImage:img];  //assume you already create an instance of UIImageView named imageView1
6 голосов
/ 10 ноября 2011

UIImage объекты хранят данные из изображения (т.е. данные из файла png)

UIImageView объекты используются для отображения UIImage

4 голосов
/ 10 ноября 2011

UIImage - это объект данных, содержащий байты изображения.

UIImageView - это элемент управления, отображающий UIImage данные.

0 голосов
/ 03 июня 2019

UIImage содержит данные как (картинки) и отображает их в UIImageView.

UIImageView - это тип контейнера для отображения изображений.

...