UIImageView类提供了一个显示单个或者动态显示多个图片对象的容器。对于动画图像,UIImageView提供了周期和频率的控制。当imageView对象显示单个图像时,其实际行为是基于image属性和视图。如果图像的leftCapWitdth(水平end-cap大小)和topCapHeight(垂直end-cap大小)非0,则图像会根据这些属性进行延伸。否则,图像根据视图的contentMode属性进行大小、比例和位置的适应调整。推荐使用相同大小的图片,如果大小不同,每一个都会分别的适应contentMode模式。
提升image view的性能
由于imagView在组成图像时,图像的比例和透明度都有非常大的开销。为了提高性能,应该进行如下操作:
1.尽可能的提供预定大小的图像。例如:如果需要一个大图像频繁的现实缩略图,应该考虑将缩略图存放的cache中。
2.限制图片大小。
3.如果不必要,取消透明度混合。
NOTE
如果希望子类化UIImageView,应该意识到以下的行为:
1.UIImageView已经优化了图片的显示。UIImageView没有调用子类的drawRect:方法。如果子类希望自定义绘制代码,应该子类化UIVIew
2.通过正常图片以及突出显示的图片初始化的UIImageView对象:
4.UIImageView突出显示时的图像:
6.用于动画的突出显示的图像数组:
7.一个图像周期花费的时间,单位为秒。该属性的默认值为(图片数 * 1/30 s):
8.动画的重复次数:
10.结束UIImageView动画:
11.动画是否在运行:
13.是否为突出显示状态:
14.在视图层次结构中色彩模板图像使用的颜色:
提升image view的性能
由于imagView在组成图像时,图像的比例和透明度都有非常大的开销。为了提高性能,应该进行如下操作:
1.尽可能的提供预定大小的图像。例如:如果需要一个大图像频繁的现实缩略图,应该考虑将缩略图存放的cache中。
2.限制图片大小。
3.如果不必要,取消透明度混合。
NOTE
如果希望子类化UIImageView,应该意识到以下的行为:
1.UIImageView已经优化了图片的显示。UIImageView没有调用子类的drawRect:方法。如果子类希望自定义绘制代码,应该子类化UIVIew
2.新的imageView对象默认配置为忽略用户事件。如果希望处理UIImageView子类的自定义事件,必须将userInteractionEnabled的变量设置为YES。
初始化对象:
1.使用图片初始化UIImageView:
- (instancetype)initWithImage:(UIImage *)image
2.通过正常图片以及突出显示的图片初始化的UIImageView对象:
- (instancetype)initWithImage:(UIImage *)image
highlightedImage:(UIImage *)highlightedImage
图像数据:
3.UIImageView显示的图像:
@property(nonatomic, retain) UIImage *image
4.UIImageView突出显示时的图像:
@property(nonatomic, retain) UIImage *highlightedImage
图像动画:
5.用于动画的图像数组:
@property(nonatomic, copy) NSArray *animationImages
6.用于动画的突出显示的图像数组:
@property(nonatomic, copy) NSArray *highlightedAnimationImages
7.一个图像周期花费的时间,单位为秒。该属性的默认值为(图片数 * 1/30 s):
@property(nonatomic) NSTimeInterval animationDuration
8.动画的重复次数:
@property(nonatomic) NSInteger animationRepeatCount
9.开始UIImageView动画:
- (void)startAnimating
10.结束UIImageView动画:
- (void)stopAnimating
11.动画是否在运行:
- (BOOL)isAnimating
获取和设置属性:
12.表示是否忽略用户事件,将其从事件队列中移除:
@property(nonatomic, getter=isUserInteractionEnabled) BOOL userInteractionEnabled
13.是否为突出显示状态:
@property(nonatomic, getter=isHighlighted) BOOL highlighted
14.在视图层次结构中色彩模板图像使用的颜色:
@property(nonatomic, retain) UIColor *tintColor