Разница между UIImage и UIImageView
В чем разница между UIImage
а также UIImageView
? Может кто-нибудь объяснить это на примере?
5 ответов
Пример:
UIImage *bgImage = [UIImage imageNamed:@"Default@2x.png"];
UIImageView *backgroundImageView = [[UIImageView alloc] initWithImage:bgImage];
backgroundImageView.frame = [[UIScreen mainScreen] bounds];
UIImage
Обзор:
UIImage
Объект - это высокоуровневый способ отображения данных изображения. Вы можете создавать изображения из файлов, из объектов изображений Quartz или из необработанных данных изображений, которые вы получаете. Класс UIImage также предлагает несколько опций для рисования изображений в текущем графическом контексте с использованием различных режимов наложения и значений непрозрачности.Объекты изображений являются неизменяемыми, поэтому вы не можете изменять их свойства после создания. Это означает, что вы обычно указываете свойства изображения во время инициализации или полагаетесь на метаданные изображения для предоставления значения свойства. Однако в некоторых случаях класс UIImage предоставляет удобные методы для получения копии изображения, в которой для свойства используются пользовательские значения.
Поскольку объекты изображений являются неизменяемыми, они также не обеспечивают прямой доступ к данным, лежащим в их основе. Однако вы можете получить объект NSData, содержащий представление данных изображения в формате PNG или JPEG, используя
UIImagePNGRepresentation
а такжеUIImageJPEGRepresentation
функции.Система использует объекты изображений для представления неподвижных изображений, сделанных камерой на поддерживаемых устройствах. Чтобы сделать снимок, используйте класс UIImagePickerController. Чтобы сохранить изображение в альбом сохраненных фотографий, используйте
UIImageWriteToSavedPhotosAlbum
функция.
UIImageView
Обзор:
UIImageView
предоставляет контейнер на основе вида для отображения одного изображения или анимации серии изображений. Для анимации изображенийUIImageView
Класс предоставляет элементы управления для установки продолжительности и частоты анимации. Вы также можете запускать и останавливать анимацию свободно.Новые объекты просмотра изображений по умолчанию настроены на игнорирование пользовательских событий. Если вы хотите обрабатывать события в пользовательском подклассе
UIImageView
Вы должны явно изменить значениеuserInteractionEnabled
собственность наYES
после инициализации объекта.Когда
UIImageView
Объект отображает одно из своих изображений, фактическое поведение которого основано на свойствах изображения и вида. Если одно из изображенийleftCapWidth
или жеtopCapHeight
свойства не равны нулю, тогда изображение растягивается в соответствии со значениями в этих свойствах. В противном случае изображение масштабируется, изменяется по размеру или размещается в представлении изображения в соответствии со свойством contentMode представления. Рекомендуется (но не обязательно) использовать изображения одинакового размера. Если изображения имеют разные размеры, каждое из них будет отрегулировано для соответствия отдельно в зависимости от этого режима.Все изображения, связанные с
UIImageView
объект должен использовать тот же масштаб. Если ваше приложение использует изображения с разным масштабом, они могут отображаться неправильно.
UIImage
содержит данные для изображения.UIImageView
это пользовательский вид, предназначенный для отображения UIImage
,
Короче говоря: вы создаете экземпляр 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
UIImage
это объект данных, который содержит байты изображения.
UIImageView
это элемент управления, который отображает UIImage
данные.
UIImage
объекты хранят данные из изображения (то есть данные из файла PNG)
UIImageView
объекты используются для отображения UIImage
UIimage
- это объект, который хранит данные (Jpg, png...) и UIImageView
класс, который содержит UIImage
как собственность.UIImageView
может иметь несколько UIImages
, а также UIImage
неизменен. Меня это беспокоило давным-давно, когда вы создаете изображение, вы делаете:
var image: UIImageView!
Но когда вы выполняете этот "образ", вы делаете
image.image = UIImage.init(named: "image")
Это действительно просто, вы используете UIimageView
, чтобы создать изображение с UIImage
.UIImage
отображает изображение, и UIImageView
контейнер для этого UIImage
.
UIImage хранит данные как изображения (изображения) и отображает их в UIImageView.
UIImageView - это тип контейнера для отображения изображений.
UIImageView *myImage = [[UIImageView alloc]init];
[myImage setImage:[UIImage imageNamed:@"1.png"]];
создайте экземпляр для UIImageView как "myImage". Это помогает отображать данные.UIImage помогает хранить данные 1.png из файла ресурсов в xcode.