UIKit--UIImageView

inhertits to : UIView : UIResponder : NSObject
conform to : UIAppearance, UIFocusEnvironment, UIDynamicItem, NSObject, NSCoding, UITraitEnvironment, UIAppearanceContainer, UICoordinateSpace

一个UIImageView对象显示一个图像或动画的图像界面中的任何一个序列。图像视图让你高效地绘制,可以使用UIImage对象指定任何图像。例如,你可以使用这个类来显示许多标准图像文件,如JPEG和PNG文件的内容。您可以配置图像视图编程或在你的故事板文件,并改变他们在运行时显示图像。对于动画图像,你也可以使用这个类的方法来启动和停止动画并指定其他动画参数。

了解如何将图像缩放

图像视图使用其contentMode属性和图像本身的结构,以确定如何显示该图像。最好是指定其尺寸匹配图像视图的确切尺寸的图像,但图像视图可以扩展图片以适应所有或部分可用空间。如果图像的大小查看本身的变化,它根据需要自动缩放图像。
对于没有帽插图的图像时,图像的呈现由图像视图的contentMode属性来确定。该UIViewContentModeScaleAspectFit和UIViewContentModeScaleAspectFill模式缩放图像,以适应或填补空间,同时保持图像的原始宽高比。该UIViewContentModeScaleToFill值缩放图像,而不考虑原始宽高比,这可能会导致图像出现失真。其它内容模式放置在图像视图边界的适当位置的图像,而不缩放它。
对于帽插图一个可调整大小的图像,这些插图影响图像的最终外观。具体地,帽插图定义哪些部分图像可以被缩放,并且其中的方向。您可以创建绵延使用resizableImageWithCapInsets一个可调整大小的图像:resizingMode:UIImage的方法。当使用这种类型的图像时,通常以使图像中的适当位置延伸并填充该图像视图的边界设置图像视图的内容模式UIViewContentModeScaleToFill。

有关如何准备图像提示,请参阅追踪到问题与您的图片浏览。有关创建帽插图可调整大小的图像的详细信息,请参阅的UIImage类参考。

确定图像的最终透明度

图像被合成到图像视图的背景,然后被合成到窗口的其余部分。在图像中的任何透明度允许图像视图的背景显示出来。同样,在任何进一步的透明度

的图像依赖于在图像视图的透明度,并显示UIImage对象的透明度。当图像视图,其形象都具有透明度,图像视图使用Alpha混合把两者结合起来。

图像被合成到图像视图的背景。

帕拉

如果图像视图的不透明属性是YES,图像的像素的图像视图的背景颜色的顶部和图像视图的alpha属性合成将被忽略。

如果图像视图的不透明属性是NO,每个像素的阿尔法值是由图像视图的alpha值相乘,以将所得的值成为该像素的实际透明度值。如果图像不具有alpha通道,假定各像素的α值为1.0。

note
它在计算上是昂贵的复合用非不透明图像视图的alpha通道图像的alpha通道。 ,对性能的影响被进一步放大,如果你使用的核心动画的影子,因为影子的形状然后根据视图的内容,必须动态计算。如果不是有意使用图像的Alpha通道或图像视图的alpha通道,不透明属性设置为NO以提高性能。有关更多优化建议,请参阅优化图像查看性能。

动画图像序列

图像视图可以存储动画图像序列和播放所有或该序列的一部分。您可以指定一个图像序列的UIImage对象的数组,并将其分配给animationImages财产。分配后,就可以使用这个类的方法和属性来配置动画计时,并启动和停止动画。

持续时间:方法也可以从使用animatedImageWithImages个体图像的序列构造单个UIImage对象。这样做会产生相同的结果,如果你已经分配了各个图像的animationImages财产。

显示动画图像序列时,请考虑以下提示:

序列中的所有图像应具有相同的尺寸。当需要缩放,图像视图分别缩放序列中的每个图像。如果图像是不同的大小,比例可能不会产生你想要的结果。

序列中的所有图片都应该使用相同的内容比例因子。确保每个图像的缩放属性包含相同的值。

响应触摸事件
图片观点忽略默认的用户事件。通常情况下,你可以使用图像视图只呈现在你的界面视觉内容。如果你想要一个图像视图处理用户交互以及,改变其userInteractionEnabled属性为YES的值。这样做之后,你可以将手势识别器,或使用任何其他事件处理技术来应对触摸事件或其他用户发起的事件。

有关处理事件的更多信息,请参阅事件处理指南适用于iOS。

提示提高性能
图像缩放和alpha混合两种相对昂贵的操作可能影响您的应用程序的性能。为了最大限度地提高你的图像视图代码的性能,请考虑以下建议:

缓存比例经常使用的图像版本。如果您希望是在一个按比例缩小的缩略图显示频繁某些大型的图像,可以考虑提前创建缩小图像并将其存储在一个缩略图缓存。这样便可以减少需要对每个图像视图单独缩放它们。

使用,其大小是靠近图像视图的大小的图像。而不是一个大图像的图像视图分配,建立相匹配的图像视图的当前大小缩放版本。您还可以创建使用UIImageResizingModeTile选项,它平铺图像缩放,而不是它的一个可变图像对象。

让你的图像视图不透明只要有可能。除非你是有意与包含透明度(图形用户界面元素,例如)图像时,请确保您的图像视图的不透明属性设置为YES。有关透明度如何确定的更多信息,请参阅确定图像的最终透明度。

与您的图像查看调试问题
如果你的图像视图没有显示你所期望的,使用下面的提示,以帮助诊断问题:

使用正确的方法加载图像。
使用imageNamed:inBundle:compatibleWithTraitCollection:UIImage的方法,从资产目录或您的应用程序的包加载图像。为了您的应用程序的包以外的图像,使用imageWithContentsOfFile:方法。

不要使用图像视图的自定义绘制。使用drawRect的TheUIImageView类不绘制它的内容:方法。只用图像的观点来呈现图像。要做到自定义绘图直接涉及到的图像,子类的UIView,绘制你的形象出现。

的图像视图国际化是自动,如果你的视图显示只能从你的应用程序包加载静态图像。如果以编程方式加载图像,你至少是部分负责加载正确的图像。

上的UIImage类的方法来获得每幅图像的本地化版本:对于您的应用程序包的资源,通过指定的属性检查器的名称或致电imageNamed做到这一点。

对于不是在你的应用程序包的图片,你的代码必须做到以下几点:

  • 确定具体的方式加载该图像到您的应用程序,如提供包含URL的本地化字符串。
  • 通过使正确的图像的URL或数据到一个适当的UIImage类方法,如imageWithData加载图像:或imageWithContentsOfFile:.
note
屏幕规格和布局也可能会因语言和区域设置的变化,特别是如果你的图片的国际化版本有不同的尺寸。如果可能的话,你应该努力使尽可能减少图像资源的国际化版本的尺寸差异。

无障碍

图像视图默认情况下访问。默认的可访问性特征的图像视图是图像和用户交互启用。

有关使iOS的访问控制的更多信息,请参见UIControl类参考的辅助信息。有关建立用户界面访问的一般信息,请参阅辅助编程指南适用于iOS。

状态保存

当你将一个值赋给一个视图的restorationidentifier属性,它试图保持显示图像的帧。具体地说,类保留的界限,中心的价值观,和变换性质的观点和底层定位点属性。在恢复过程中,图像视图恢复这些值,使图像看起来像以前一样。如何保护和恢复工作状态的更多信息,查看iOS应用程序编程指南。

初始化一个图像视图

Declaration
SWIFT
init(image image: UIImage?)
OBJECTIVE-C
- (instancetype)initWithImage:(UIImage *)image

Parameters
image
在图像视图中显示的初始图像。您可以指定一个包含动画序列图像的图像对象。

Return Value
初始化的图像视图对象。

Discussion
您指定的图像用于配置图像视图本身的初始大小。使用约束和视图的内容模式来调整图像的最终尺寸的屏幕。这种方法禁用图像视图的用户交互通过设置userinteractionenabled财产号
如果你指定一个动画图像,其持续时间大于0,图像视图会自动开始播放动画。

Declaration
SWIFT
init(image image: UIImage?,highlightedImage highlightedImage: UIImage?)
OBJECTIVE-C
 - (instancetype)initWithImage:(UIImage *)image
             highlightedImage:(UIImage *)highlightedImage

Parameters
- image

在图像视图中显示的初始图像。您可以指定一个包含动画序列图像的图像对象。
- highlightedImage

突出显示图像时显示的图像。您可以指定一个包含动画序列图像的图像对象。

Return Value
初始化的图像视图对象。

Discussion
您指定的图像用于配置图像视图本身的初始大小。使用约束和视图的内容模式来调整图像的最终尺寸的屏幕。这种方法禁用图像视图的用户交互通过设置userinteractionenabled财产号
如果你指定一个动画图像,其持续时间大于0,图像视图会自动开始播放动画。

访问显示的图像
image
Property
The image displayed in the image view.

Declaration
SWIFT
var image: UIImage?
OBJECTIVE-C
@property(nonatomic, strong) UIImage *image

Discussion

此属性包含由图像视图显示的主图像。当图像视图处于其自然状态时,显示该图像。当突出,图像视图显示图像的highlightedimage属性。如果将该属性设置为“无”,则图像视图将默认的高亮显示为这个图像。如果animationimages属性包含一个有效的图像,这些图像代替。
改变这个属性中的图像不会自动改变图像视图的大小。设置后的图像,称为sizetofit方法重新计算基于新的图像视图的大小和有效约束。
此属性将设置为您在初始化时指定的图像。如果你没有使用initwithimage:或initwithimage:highlightedimage:初始化你的影像方法,此属性的初始值是零。

highlightedImage
Property
The highlighted image displayed in the image view.

Declaration
SWIFT
var highlightedImage: UIImage?
OBJECTIVE-C
@property(nonatomic, strong) UIImage *highlightedImage

Discussion
在该属性中的图像显示时,图像视图的突出显示的属性是。如果highlightedanimationimages属性包含一个有效的图像,这些图像被用来代替。
此属性设置为在初始化时指定的图像(如果有的话)。如果你没有使用initwithimage:highlightedimage:
初始化你的影像方法,此属性的初始值是零。

动画图像序列
animationImages
Property
An array of UIImage objects to use for an animation.

Declaration
SWIFT
var animationImages: [UIImage]?
OBJECTIVE-C
@property(nonatomic, copy) NSArray <UIImage *> *animationImages

Discussion
数组必须包含UIImage对象。您可以在数组中多次使用同一个图像对象。将此属性设置为一个值以外的其他隐藏的图像属性所表示的图像。默认情况下,此属性的值为零。

highlightedAnimationImages
Property
UIImage对象数组的使用动画视图时强调。

Declaration
SWIFT
var highlightedAnimationImages: [UIImage]?
OBJECTIVE-C
@property(nonatomic, copy) NSArray <UIImage *> *highlightedAnimationImages

Discussion

数组必须包含UIImage对象。您可以在数组中多次使用同一个图像对象。将此属性设置为非零的highlightedimage隐藏属性表示的图像的价值。默认情况下,此属性的值为零。

animationDuration
Property
的时间量花费要经过图像中的一个周期。

Declaration
SWIFT
var animationDuration: NSTimeInterval
OBJECTIVE-C
@property(nonatomic) NSTimeInterval animationDuration

Discussion
持续时间以秒为单位。此属性的默认值是0.0,这会导致使用等于图像乘以第二的1/30的数量的持续时间的图像图。因此,如果你有30幅,持续时间将是1秒。

animationRepeatCount
Property
指定动画的重复的次数。

Declaration
SWIFT
var animationRepeatCount: Int
OBJECTIVE-C
@property(nonatomic) NSInteger animationRepeatCount

Discussion
缺省值是0,即指定无限期重复动画。

- startAnimating
启动动画在接收机中的图像。

Declaration
SWIFT
func startAnimating()
OBJECTIVE-C
- (void)startAnimating

Discussion
此方法始终开始从该列表中的第一图像的动画。

- stopAnimating
停止动画在接收机中的图像。

Declaration
SWIFT
func stopAnimating()
OBJECTIVE-C
- (void)stopAnimating

- isAnimating
返回一个布尔值,指示动画是否正在运行。

Declaration
SWIFT
func isAnimating() -> Bool
OBJECTIVE-C
- (BOOL)isAnimating

Return Value
YES如果动画正在运行;否则,没有。

配置图片浏览
userInteractionEnabled
Property
确定是否用户事件的布尔值被忽略并从事件队列中删除。

Declaration
SWIFT
var userInteractionEnabled: Bool
OBJECTIVE-C
@property(nonatomic, getter=isUserInteractionEnabled) BOOL userInteractionEnabled

Discussion
此属性是从父类继承的UIView。这个类将此属性的默认值更改为NO。

highlighted
Property
一个布尔值,确定该图像是否被高亮显示。

Declaration
SWIFT
var highlighted: Bool
OBJECTIVE-C
@property(nonatomic, getter=isHighlighted) BOOL highlighted

Discussion
此属性确定是否使用常规或突出的图像。当强调的是yes,非动画的图像将使用highlightedimage属性和动画图像将使用highlightedanimationimages。如果这些属性都设置为零或者突出设置为无,它将使用图像和animationimages性质。

tintColor
Property
一种颜色用于色彩模板图像的视图层次。

Declaration
SWIFT
var tintColor: UIColor!
OBJECTIVE-C
@property(nonatomic, strong) UIColor *tintColor

Discussion
默认为零。如果指定了非零值,则将颜色应用于连接到图像视图的任何模板图像中。更多信息,见renderingmode UIImage类属性。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值