UIImage和UIImageView的区别

36

UIImageUIImageView有什么区别?能给个例子解释一下吗?

8个回答

32

例子:

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

UIImage概览:

UIImage对象是一种高级方式来显示图像数据。您可以从文件、Quartz图像对象或接收到的原始图像数据创建图像。UIImage类还提供了几个选项,使用不同的混合模式和不透明度值将图像绘制到当前的图形上下文中。

图像对象是不可变的,因此在创建后无法更改其属性。这意味着通常在初始化时指定图像的属性,或者依赖于图像的元数据提供属性值。然而,在某些情况下,UIImage类提供了方便的方法,以使用自定义值获取图像的副本。

因为图像对象是不可变的,所以它们也不能直接访问其底层的图像数据。但是,您可以使用UIImagePNGRepresentationUIImageJPEGRepresentation函数获取包含PNG或JPEG表示的图像数据的NSData对象。

系统使用图像对象来表示在支持设备上使用相机拍摄的静止图片。要拍摄照片,请使用UIImagePickerController类。要将照片保存到'相册'中,请使用UIImageWriteToSavedPhotosAlbum函数。

UIImageView概览:

UIImageView提供了一个基于视图的容器,用于显示单个图像或动画系列的图像。对于动画图像,UIImageView类提供了控件来设置动画的持续时间和频率。您还可以自由地启动和停止动画。

默认情况下,新的图像视图对象配置为忽略用户事件。如果要处理UIImageView的自定义子类中的事件,则必须在初始化对象后显式更改userInteractionEnabled属性的值为YES

UIImageView对象显示其图像之一时,实际行为基于图像和视图的属性。如果图像的leftCapWidthtopCapHeight属性中的任何一个不为零,则根据这些属性中的值拉伸图像。否则,根据视图的contentMode属性,在图像视图中缩放、大小适应或定位。建议(但不是必需)使用相同大小的图像。如果图像大小不同,则每个图像将根据该模式单独调整大小以适应。

UIImageView对象关联的所有图像应使用相同的比例。如果您的应用程序使用具有不同比例的图像,则它们可能会呈现不正确。


17

UIImage 包含图像的数据。 UIImageView 是一个自定义视图,用于显示 UIImage


13

简单来说:您需要创建一个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

8

UIImage是一个保存图像字节的数据对象。

UIImageView是一个显示UIImage数据的控件。


7

UIImage对象存储来自图像的数据(即来自png文件的数据)

UIImageView对象用于显示UIImage


2

UIimage是一个对象,它存储数据(Jpg,png...),UIImageView类包含UIImage作为属性。 UIImageView可以有多个UIImages,而UIImage是不可变的。以前我一直感到困扰,当你创建一张图片时:

 var image: UIImageView!

但是当你执行那个“image”时,你会这样做。
image.image = UIImage.init(named: "image")

这非常简单,你可以使用UIimageView来创建一个带有UIImage的图像。 UIImage用于显示图像,而UIImageView则是该UIImage的容器。


0

UIImage保存图片数据并在UIImageView上显示。

UIImageView是一种用于显示图片的容器类型。


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

创建一个名为“myImage”的UIImageView实例。这有助于显示数据。UIImage有助于从Xcode的资源文件中保存1.png的数据。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接