UIImage
- 通过属性显示assets中的图片
- 通过代码显示图片
显示图片最直接的方式就是使用Image View控件。
在工具箱中拖拽Image View控件到需要的View Controller中。
选中Image View控件,可在右侧Inspector的Image下拉框,下拉选中图片。
下拉框中显示的图片是来自Assets.xcassets文件夹的,因此你需要先将图片拖进assets。
Image View支持大部分图片格式,但官方推荐png和jpeg两种格式。
通过代码显示图片
通过Inspector显示图片有一定局限性,比如图片没有放到assets中就不能选择了。因此应该掌握通过代码显示图片的方法。
代码显示图片的基本方法都是创建一个UIImage对象,然后将该对象赋值给Image View控件的image
属性。
UIImage *localImage = [UIImage imageNamed:@"imagename"];
imageView.image = localImage; //imageView是与Image View控件关联的属性
这里的关键是如何创建UIImage对象,针对不同的场景有不同的方式。下图是Apple文档说明:
Use the imageNamed:inBundle:compatibleWithTraitCollection: method (or the imageNamed: method) to create an image from an image asset or image file located in your app’s main bundle (or some other known bundle). Because these methods cache the image data automatically, they are especially recommended for images that you use frequently.
Use the imageWithContentsOfFile: or initWithContentsOfFile: method to create an image object where the initial data is not in a bundle. These methods load the image data from disk each time, so you should not use them to load the same image repeatedly.
Use the animatedImageWithImages:duration: and animatedImageNamed:duration: methods to create a single UIImage object comprised of multiple sequential images. Install the resulting image in a UIImageView object to create animations in your interface.
这里介绍一种显示动画的方法。
将一些列的图片按顺序命名成animate1.png
,animate2.png
,animate3.png
...。然后拖到assets中。然后在viewDidLoad中编写如下代码:
UIImage *localImage = [UIImage animatedImageNamed:@"animate", duration:1.0];
imageView.image = localImage; //imageView是与Image View控件关联的属性
效果就是Image View控件每秒显示一张新的图片,并且不断循环,这样就起到了动画的效果。