iOS--UIImageView使用方法

UIImageView继承于UIView,是专门用来展示图片的控件。

UIImageView的创建方法:

- (instancetype)initWithImage:(nullable UIImage *)image;

- (instancetype)initWithImage:(nullable UIImage *)image highlightedImage:(nullable UIImage *)highlightedImage

UIImageView的部分属性:

//UIImageView拥有一个UIImage类型的对象,可以直接赋值一个UIImage对象
@property (nullable, nonatomic, strong) UIImage *image; 

//UIImageView高亮状态下的状态也是一个UIImage类型的对象,可以直接赋值,在高亮状态下显示该image
@property (nullable, nonatomic, strong) UIImage *highlightedImage 

//给UIImageView的图片展示设置一些特性
@property (nullable, nonatomic, strong) UIImageSymbolConfiguration* preferredSymbolConfiguration 

//是否接受用户交互,比如点击时是否响应,默认关闭。
@property (nonatomic, getter=isUserInteractionEnabled) BOOL userInteractionEnabled; 

//设置是否为高亮状态,默认关闭。
@property (nonatomic, getter=isHighlighted) BOOL highlighted

//这是一个数组,用来连续展示一组连续帧动画图片,里面存放的是UIImage对象。
@property (nullable, nonatomic, copy) NSArray<UIImage *> *animationImages; 

//这是一个数组,在高亮状态下用来连续展示一组连续帧动画图片,里面存放的是UIImage对象。
@property (nullable, nonatomic, copy) NSArray<UIImage *> *highlightedAnimationImages

//UIImageView设置连续动画的时长,double类型。
@property (nonatomic) NSTimeInterval animationDuration; 

//设置动画重复次数。
@property (nonatomic) NSInteger animationRepeatCount; 

//判断是否正执行动画。
@property(nonatomic, readonly, getter=isAnimating) BOOL animating;

UIImageView赋值UIImage时的注意事项:

第一种方式:

NSString *path = [[NSBundle mainBundle] pathForResource:@"user/desktop/Justin";
UIImage *image = [UIImage imageWithContentsOfFile:path];

这种方式,是把图片根据路径从本地读取到内存中,当该图片被展示完毕或用完后,没有强指针类型指向的时候,该图片占据的内存空间即被释放。

第二种方式:

UIImage *image = [UIImage imageNamed:@"justin.jpg"];

这种方式会把图片加载到内存后,即便是没有指针指向了,依然不会再次释放,直到程序结束才会释放。

两者区别:第一种比较适合图片多,需要节省内存空间的情况,效率没有第二种方式高,但是一般都推荐用第一种方式。第二种方式一般适用于高频出现的较小的icon。

猜你喜欢

转载自blog.csdn.net/JustinZYP/article/details/124242731