类
UIView
一个管理屏幕上矩形区域内容的对象。
概述
Views 是你应用的用户界面最基础的组成部分。UIView类定义了对于所有 views 的共有的行为。一个 view 对象在它的边界矩形内渲染内容并且通过内容处理一切的交互行为。UIView 类是一个可以实例化并且用于展示固定背景颜色的具体类。你还可以使 UIView 子类化去描述更加复杂的内容。为了显示 labels,images,buttons 和其他在app内部常见的界面元素,用 UIKit 框架提供的 view 的子类比你自己定义要好。
因为 view 对象你的应用与用户交互的是主要的途径,它们有许多责任。下面列出一小部分:
绘图和动画
Views 用 UIKit 或者 Core Graphics 框架在它的矩形区域内去绘制内容。
某些 view 属性可以设置为新值的动画。
约束和子视图管理
Views 可以包含0个或更多的子视图。
Views 可以调整它们子视图的大小和位置。
使用“自动布局”定义根据视图层次结构中的更改调整视图大小和重新定位视图的规则。
事件处理
一个 view 是 UIResponder 的一个子类,可以响应触摸和其他事件类型。
Views 可以安装手势识别器来处理常见的手势。
Views 可以内嵌到其他的 views 内来创建视图层次结构,这个层次结构提供了一个方便的方式来处理相关内容。嵌入一个 View 在被嵌入的孩子视图(被称之为子视图)和父亲视图(被称之为父视图)之间建立了父子关系。一个父视图可以包含许多子视图但每一个子视图只有一个父视图。默认的,当一个子视图的可见区域扩展到它父视图的边界之外时,不对子视图进行裁剪。用 clipsToBounds 属性来进行裁剪。
每个 view 的几何形状通过它的 frame 和 bounds 属性来定义。frame 属性在父视图的坐标系中定义了 view 的原点和尺寸。Bounds 属性定义了视图的内部尺寸,几乎只在自定义绘图代码中使用。center 属性提供了一种 在不改变 frame 和 bounds 属性情况下,直接重新调整 view 位置的快捷方式。
想要了解更多关于如何使用 UIView 类的信息,请查看 View Programming Guide for iOS.
创建一个 View
通常情况下,在 storyboards 上通过从视图库中拖拽 view 到界面上的方式来创建 views. 你也可以编程来创建 views. 当创建一个 view时,你通常可以指定相对于未来父视图的初始大小和位置。举个例子,接下来的这个例子创建了一个 view 并且把它的左上角放置在父坐标系 (10,10)的位置(一旦它被加到父视图上)。
CGRect viewRect = CGRectMake(10,10,100,100);
UIView *myView = [[UIView alloc] initWithFrame:viewRect];
为了添加一个子 view 到另一个 view上,在父视图上调用 (addSubview:) 方法。你可以添加许多子 view 到一个 view 上,这些兄弟视图可能会相互重叠,但是在 iOS 中没有任何问题。每次调用 (addSubview:) 方法,会把新的 view 置于所有其他兄弟视图之上。你可以用 (insertSubview:aboveSubview:) 和 (insertSubview:belowSubview:) 方法添加子视图,指定相对于其他子视图的Z轴位置。你可以用 (exchangeSubviewAtIndex:withSubviewAtIndex:) 方法,交换已存在的被添加的子视图。
创建视图后,创建自动布局规则,以控制视图的大小和位置如何根据视图层次结构其余部分的更改而更改。想获取更多信息,请查看 AutoLayoutGuide.
视图绘制周期
根据需要进行视图绘制。当视图第一次展示或由于约束改变使得视图整体或部分变得可见,系统会请求视图绘制它的内容。对于包含用 UIKit 或 Core Graphics 框架自定义内容的视图,系统会调用视图的 (drawRect:) 方法。此方法的实现负责将视图的内容绘制到当前图形上下文中,该上下文由系统在调用此方法之前自动设置。这样就创建了视图内容的静态可视化的表现,接下来就会显示在屏幕上。
当实际的视图内容变化时,你有责任通知系统你的视图内容需要重新绘制。你可以调用视图的 (setNeedsDisplay) 或 (setNeedsDisplayInRect:) 方法来重新绘制视图。这些方法会让系统知道在下个绘图周期之内更新视图。因为它会等到下一个绘图周期更新视图,所以可以在下个周期之前对多个视图调用这些方法,等到下个周期到来之时同时更新它们。
注意
如果你用 OpenGL ES 来绘制图形,你可以用 GLKView 类来代替子类化的 UIView. 想了解更多关于如何用 OpenGL ES 绘制图形的知识,请查阅 OpenGL ES Programming Guide.
想详细了解关于绘图周期的相关信息,并且想知道视图在周期中扮演什么角色,请查阅 View Programming Guide for iOS.
动画
一些视图属性的变化可以用动画的方式呈现。改变属性创建一个以当前属性值为开始,以你设定的新的属性值为结尾的动画。UIView 类的下面一些属性可以用动画的方式呈现:
frame
bounds
center
transform
alpha
backgroundColor
为了让属性变化动画化,创建一个 UIViewPropertyAnimator 类并用它的处理代码块来改变你视图属性的值。UIViewPropertyAnimator 类可以让你指定时长和动画的定时,但它执行实际的动画。你可以暂停当前正在运行的基于属性的动画来中断动画并以用户交互的方式再次驱动它。想了解更多知识,请查阅 UIViewPropertyAnimator.
线程考虑
对于应用的用户界面的操作必须发生在主线程。这样,应该始终从应用程序主线程中运行的代码调用UIView类的方法。唯一在主线程不是严格需要的时间就是创建视图对象它自己的时候,其余的操作都应该发生在主线程。
子类化注意
UIView 类是可视内容的一个关键子类化点,它还需要用户交互。尽管有许多原因子类化 UIView,官方建议只有当基本 UIView 类或标准系统视图不能提供你所需要的功能时才这样做。子类化需要更多的工作来实现视图并且调整它的表现形式。
想了解更多避免子类化的方法,请查看 Alternatives to Subclassing.
方法重写
当子类化 UIView 时,只有很少的方法需要重写,许多方法要根据你的需求决定是否需要重写。因为 UIView 是一个高配置的类,不用重写自定义方法也有许多方案实现复杂视图行为,这些方案在 Alternatives to Subclassing 部分有详细的论述。与此同时,下面的列表中包含了在你重写 UIView 子类时应该考虑的方法。
初始化:除此方法之外,您还可以实现自定义初始化方法,也可以不实现自定义初始化方法。
initWithFrame: 官方建议实现这个方法。除此之外你可以实现自定义的初始化方法,也可以不实现自定义初始化方法。
initWithCoder: 如果你是从 storyboards 或 nib 方件中加载视图,请实现这个方法,并且你的视图需要自定义初始化。
layerClass: 如果您希望视图为其后备存储使用其他核心动画层时才使用此属性。例如,如果视图使用平铺来显示一个大的可滚动的区域,则可能将该属性设置成 CATiledLayer类。
绘图和打印:
drawRect:如果你的视图绘制自定义内容,请实现这个方法。如果你的视图不实现任何自定义的绘图,避免重写这个方法。
drawRect:forViewPrintFormatter:仅当希望在打印期间以不同的方式绘制视图的内容时,才实现此方法。
布局和约束:
requiresConstraintBasedLayout: 如果你的视图类需要约束恰如其分的工作可以使用这个属性。
updateConstraints: 如果你的视图需要在子类之间创建自定义约束,请实现这个方法。
alignmentRectForFrame:,frameForAlignmentRect: 重写视图如何对准其他视图的时候,实现这些方法。
didAddSubview:,willRemoveSubview: 根据需要实现这些方法来追踪子视图的添加和删除。
willMoveToSuperview:,didMoveToSuperview: 根据需要实现这些方法来追踪当前视图在视图层级结构中的改变。
事件处理:
gestureRecognizerShouldBegin: 如果你的视图直接处理触摸事件并且想要防止添加手势识别器的时候触发额外的操作,请实现这个方法。
touchesBegan:withEvent:,touchesMoved:withEvent:,touchesEnded:withEvent:,touchesCancelled:withEvent: 如果你需要直接处理触摸事件,请实现这个方法。(对于基于手势的输入,使用手势识别器。)
子类化的选择
有许多视图行为已经被配置,没有子类化的需要。在你开始重写方法之前,考虑是否修改下面的属性或行为可以满足你的需求。
addConstraint: 对于视图和它的子视图定义自动布局行为。
autoresizingMask: 当父控件 frame 改变时提供自动的布局行为。这些行为与约束相关联。
contentMode: 针对视图内容提供布局行为,而不是视图的 frame. 这个属性也影响内容如何缩放以适应视图,以及决定内容是否被缓存或重绘。
hidden or alpha: 更改视图整体的透明度好于隐藏或是把 alpha 应用到视图的渲染内容上。
backgroundColor: 设置视图的颜色好过于自己绘制颜色。
Subviews: 给你想要显示内容嵌入 image 和 label 子视图,好过于用 (drawRect:) 绘制内容。
Gesture recognizers: 你可以用手势识别器发送 Target-Action 给一个目标对象,好过于你自己子类化来拦截和处理触摸事件。
Animations: 用内建支持的动画好过于自己试图用动画做改变。Core Animation 提供支持的动画又快又好用。
Image-based backgrounds: 对于呈现相对静态内容的视图来说,考虑用一个带手势识别器的 UIImageView 对象代替子类化和自己绘制图片。要不然你也可以用一个一般的 UIView 对象,设置你的图片作为这个 UIView对象的 CALayer 对象的内容。
动画对视图来说是一种另外可以实现可视化的变化的方式,并不需要子类化和实现复杂的绘图代码。许多 UIView 类的属性是可动画的,这意味着那些属性的变化可以触发系统生成的动画。开始动画只需要一行代码,开始之后,后面任何的变化都以动画的方式展现。想了解更多针对视图关于动画的信息,请查阅 Animations.
标题
创建一个视图对象
initWithFrame: 初始化并且返回一个分配好的指定 frame 的视图对象。
initWithCoder:
配置一个视图的可视界面:
backgroundColor: 视图的背景颜色。
hidden: 一个布尔值,决定视图是否隐藏。
alpha: 视图的 alpha 值。
opaque: 一个布尔值,决定视图是否不透明。
tintColor: 视图层次结构中的第一个非默认 tint 颜色值,从视图本身开始升序。
tintAdjustmentMode: 视图层次结构中第一个非默认 tint 适应模式值,从视图本身开始升序。
clipsToBounds: 一个布尔值决定子视图在父视图边界是否被裁边。
clearsContextBeforeDrawing: 一个布尔值决定在绘图之前是否视图边界应该被自动清除。
maskView: 一个可选视图,其 alpha 层经常用于覆盖视图的内容。
layerClass: 返回一个用于创建这个类的实例的 layer.
layer: 用于渲染的视图核心动画 layer.
配置事件相关的行为:
userInteractionEnabled: 一个布尔值决定用户事件是否被忽略并且移除事件队列。
multipleTouchEnabled: 一个布尔值决定视图在同一时间是否接收多个触摸事件。
exclusiveTouch: 一个布尔值决定接收者是否专有的处理触摸事件。
配置 Bounds 和 Frame 矩形:
frame: frame 矩形,描绘了视图在父视图坐标系中的位置和大小。
bounds: bounds 矩形,描绘了视图在自己的坐标系中的位置和大小。
center: 视图 frame 矩形的中心点。
transform: 指定应用于视图的转换,(其相对于边界的中心)。
管理视图的层次结构:
superview: 接收者的父视图,如果为 nil 那么它没有父视图。
subviews: 接收者的直接子视图。
window: 接收者的视窗对象,如果为 nil 那么表示它没有。
- addSubview: 添加一个视图到接收者子视图列表的末尾。
- bringSubviewToFront: 移动指定的子视图到它兄弟视图的最上面。
- sendSubviewToBack: 移动指定的视图到它兄弟视图的最下面。
- removeFromSuperview: 断开视图与它父视图和视窗的连接,并从响应链中移除。
- insertSubview:atIndex: 在指定的序列插入一个子视图。
- insertSubview:aboveSubview: 在视图层次结构中在另一个视图之上插入一个视图。
- insertSubview:belowSubview: 在视图层次结构中在另一个视图之下插入一个视图。
- exchangeSubviewAtIndex:withSubviewAtIndex: 指定两个索引交换子视图位置。
- isDescendantOfView: 返回一个布尔值判断接收者是否是给出的视图的子视图 或 与给出的视图相同。
监测视图相关的变化:
- didAddSubview: 告诉视图一个子视图被添加了。
- willRemoveSubview: 告诉视图一个子视图将要被移除。
- willMoveToSuperview: 告诉视图它的父视图将要变成指定的父视图。
- didMoveToSuperview: 告诉视图它的父视图已经改变。
- willMoveToWindow: 告诉视图它的窗口对象将要改变。
- didMoveToWindow: 告诉视图它的窗口对象已经改变。
配置内容边界:
Positioning Content Within Layout Margins (在布局页边距之内定位内容)
定位视图使其不受其他内容的拥挤。
directionalLayoutMargins (方向布局页边距)
考虑到当前语言方向,在一个视图内布局内容时用一个默认的间隙。
layoutMargins
在视图中布局内容时用到的默认间隙。
preservesSuperviewLayoutMargins (保留父视图布局边距)
一个布尔值决定当前视图是否也遵守父视图的边界约束。
- layoutMarginsDidChange
通知当前视图布局边界已经改变。
获取安全区域
Positioning Content Relative to the Safe Area(相对于安全区域定位内容)
定位视图,使其不受其他内容的阻碍。
safeAreaInsets (安全区域内边界)
这个内边界决定了视图的安全区域。
safeAreaLayoutGuide
布局参考线表明了没有被导航栏和其他内容阻碍的视图的内容。
- safeAreaInsetDidChange
当视图的安全区域发生变化会调用这个方法。
insetsLayoutMarginsFromSafeArea (在安全区域内嵌约束边界)
一个布尔值表示是否视图的布局边界被自动更新了来响应安全区域。
管理视图的约束
用自动布局约束调整视图的大小和位置。
constraints
视图所持有的约束。
- addConstraint:
在接收视图或它的子视图的布局上添加约束。
- addConstraints:
在接收视图或它的子视图的布局上添加多个约束。
- removeConstraint:
从视图上移除指定的一个约束。
- removeConstraints:
从视图上移除指定的多个约束。
用布局锚点创建约束:
添加自动布局约束到一个视图的锚点上。
bottomAnchor
一个布局锚点表示视图frame的底部边缘。
centerXAnchor
一个布局锚点表示视图frame的水平中心。
centerYAnchor
一个布局锚点表示视图frame的垂直中心。
firstBaselineAnchor
一个布局锚点表示在视图内文本最顶部的基线。
heightAnchor
一个布局锚点表示视图frame的高度。
lastBaselineAnchor
一个布局锚点表示在视图内文本最底部的基线。
leadingAnchor
一个布局锚点表示视图frame的前面边缘。
leftAnchor
一个布局锚点表示视图frame的左侧边缘。
rightAnchor
一个布局锚点表示视图frame的右侧边缘。
topAnchor
一个布局锚点表示视图frame的顶部边缘。
trailingAnchor
一个布局锚点表示视图frame的尾部边缘。
widthAnchor
一个布局锚点表示视图frame的宽度。
使用布局参考线
- addLayoutGuide:
给视图添加指定的布局参考线。
layoutGuides
属于这个视图的布局参考线对象的数组。
layoutMarginsGuide
一个布局参考线表示视图的边界。
readableContentGuide
一个布局参考线表示在视图内一个可读宽度的区域。
- removeLayoutGuide:
从视图中移除指定的布局参考线。
自动布局测量
- systemLayoutSizeFittingSize: (系统布局大小装配尺寸)
返回基于当前约束的视图的最优大小。
- systemLayoutSizeFittingSize:withHorizontalFittingPriority:verticalFittingPriority:
返回一个基于约束的视图的最优的大小并且指定合适的最优属性。
intrinsicContentSize (本身的内容大小)
接收视图的自然大小,仅考虑视图本身的属性。
- invalidateIntrinsicContentSize
使本身的内容大小无效。
- contentCompressionResistancePriority:forAxis: (内容压缩阻力优先:轴线:)
返回使视图不受影响的优先级小于其内部大小。
- setContentCompressionResistancePriority:forAxis:
设置返回使视图不受影响的优先级小于其内部大小。
- contentHuggingPriorityForAxis:
轴线的内容环绕优先级。
- setContentHuggingPriority:forAxis:
设置轴线的内容环绕优先级。
在自动布局中排列视图
- alignmentRectForFrame:
通过给予的frame返回视图的排列矩形
- frameForAlignmentRect:
通过给予的排列矩形返回视图的frame
alignmentRectInsets
从视图frame得到的insets定义它的排列矩形。
viewForFirstBaselineLayout
返回一个用于满足第一基线约束的视图。
viewForLastBaselineLayout
返回一个用于满足最后基线约束的视图。
触发自动布局
- needsUpdateConstraints
一个布尔值决定是否视图的约束需要更新。
- setNeedsUpdateConstraints
控制是否视图约束需要更新。
- updateConstraints
更新视图的约束。
- updateConstraintsIfNeeded
对于接收的视图和他的子视图更新约束。
调试自动布局
查阅 Auto Layout Guide 了解更多关于调试基于约束的布局的知识。
- constraintsAffectingLayoutForAxis:
对于给定的轴线,返回影响视图布局的约束。
hasAmbiguousLayout (模糊布局)
一个布尔值决定是否影响视图布局的约束,模糊地指定视图的位置。
- exerciseAmbiguityInLayout
在不同的有效值之间用一个模糊的布局随机改变视图的frame。
配置重新绘制大小的行为
当边界改变的时候,定义一个视图如何适应它的内容。
contentMode
一个标志用于决定一个视图在它的边界改变的时候如何布局它的内容。
UIViewContentMode
多个选项指定一个视图当它的大小发生变化时如何适应它的内容。
- sizeThatFits
请求视图计算并且返回大小,这个大小最优匹配了指定的内容。
- sizeToFit
重置大小并且移动接收者视图,这样就会更好的围住子视图。
autoresizesSubviews
一个布尔值决定当边界发生变化时,是否接收者会自动重置它的子视图的大小。
autoresizingMask
一个整型 bit 覆盖值,决定了当它的父视图的边界变化时,接收者如何重置它自己的大小。
约束子视图
如果你的应用没有用自动布局,手动布局视图。
- layoutSubviews
约束子视图。
- setNeedsLayout
使当前接收者的约束无效化,并且在下一个更新循环的时候触发一个约束更新。
- layoutIfNeeded
即便下一个更新约束循环还没有来,立刻进行子控件的布局。
requiresConstraintBasedLayout (基于布局的请求约束)
一个布尔值决定是否这个接收者依靠基于约束的布局系统。
translatesAutoresizingMaskIntoConstraints
一个布尔值,决定是否将视图的自动重置大小掩码转化成自动布局约束。
设置用户界面方向
semanticContentAttribute (语义内容属性)
视图内容的语义描述,当改变从左向右,从右向左布局的时候,用于决定视图是否应该翻转。
effectiveUserInterfaceLayoutDirection (有效的用户界面布局方向)
用户界面布局方向适用于排列的视图的直接内容。
+ userInterfaceLayoutDirectionForSemanticContentAttribute: (对应语义内容属性的用户界面布局方向)
返回对应给出的语义内容属性的用户界面方向。
+ userInterfaceLayoutDirectionForSemanticContentAttribute:relativeToLayoutDirection:
返回布局的方向隐含的指定语义内容属性,相对于指定布局方向。
添加和移除界面互动功能
- addInteraction:
给视图添加一个互动功能。
- removeInteraction:
从视图上移除互动功能。
interactions
视图的互动功能数组。
UIInteraction
访问拥有交互功能的视图而实现的协议。
绘图和更新视图
- drawRect:
在传入的矩形内绘制接收器的图像。
- setNeedsDisplay
将整个接收器的边界矩形标记为需要重新绘制。
- setNeedsDisplayInRect:
将指定的接收者的矩形标记为需要重新绘制。
contentScaleFactor
应用于视图的比例元素
- tintColorDidChange
当 tintColor 属性改变时,调用系统方法。
格式化打印视图内容
- viewPrintFormatter
对于接收的视图返回打印格式。
- drawRect:forViewPrintFormatter:
实现绘制视图内容供打印。
设置手势识别器
- addGestureRecognizer:
在视图上添加手势识别器
- removeGestureRecognizer:
从视图上移除手势识别器
gestureRecognizers
当前的添加到视图上的手势识别器对象。
- gestureRecognizerShouldBegin:
询问视图手势识别器是否允许继续追踪触摸事件。
观察焦点
canBecomeFocused
一个布尔值决定视图当前是否有成为焦点的能力。
inheritedAnimationDuration (继承的动画持续时间)
返回的继承的当前动画的持续时间。
focused
一个布尔值决定条目当前是否处于聚焦状态。
使用运动效果
- addMotionEffect:
添加一个运动效果到视图上。
motionEffects
对应视图的运动效果的数组。
- removeMotionEffect:
停止添加到视图上的运动效果。
保持和存储状态
restorationIdentifier
恢复ID标识符
标识符决定视图是否支持状态恢复。
- encodeRestorableStateWithCoder:
对于视图,编码和恢复状态相关联的信息。
- decodeRestorableStateWithCoder:
对于视图,解码和恢复状态相关联的信息。
捕捉视图快照
- snapsshotViewAfterScreenUpdates:
返回一个基于当前视图内容的快照视图。
- resizableSnapshotViewFromRect:afterScreenUpdates:withCapInsets:
返回一个基于当前视图指定的内容快照视图,用可拉伸的内边距作为参数。
- drawViewHierarchyInRect:afterScreenUpdates:
将完整的视图层次结构的快照呈现为在当前上下文的屏幕上可见。
在运行时识别视图
tag
一个整型值,你可以用于在你的应用中识别视图对象。
- viewWithTag:
返回匹配指定tag值的视图。
在视图坐标系上的转换
- convertPoint:toView:
从接收者坐标系中把一个点坐标转换到指定的视图上。
- convertPoint:fromView:
从给定的视图的坐标系中把一个点坐标转换到接收者上。
- convertPoint:fromView:
从给定的视图坐标系中转化一个点坐标到接收者上。
- convertRect:toView:
从接收者的坐标系中转化一个矩形到另一个视图上。
- convertRect:fromView:
从另一个视图的坐标系统上转化一个矩形到接收者上。
视图中的命中测试
- hitTest:withEvent:
返回包含一个指定的点的接收者视图层次结构中最远的子孙(包含接收者自己)。
- pointInside:withEvent:
返回一个布尔值表明接收者是否包含一个指定的点。
结束视图编辑会话
- endEditing
让视图(或者它内嵌的文本框)注销第一响应者状态。
修改可访问性行为
accessibilityIgnoresInvertColors
一个布尔值表示是否视图忽略一个转化颜色的可访问请求。
带有块对象的动画视图
这些方法的使用是被阻止的。可以用 UIViewPropertyAnimator 类来代替执行动画。
+ animateWithDuration:delay:options:animations:completion:
使用指定的持续时间,延迟,选项和完成处理程序对一个或多个视图进行动画更改。
+ animateWithDuration:animations:completion:
使用指定的持续时间和完成处理程序对一个或多个视图进行动画更改。
+ animateWithDuration:animations:
使用指定的持续时间对一个或多个视图进行动画更改。
+ transitionWithView:duration:options:animations:completion:
给指定的容器视图创建一个转场动画。
+ transitionFromView:toView:duration:options:completion:
用给定的参数在指定的视图之间创建一个转场动画。
+ animateKeyframesWithDuration:delay:options:animations:completion:
创建可用于为当前视图设置基于关键帧的动画的动画块对象。
+ addKeyframeWithRelativeStartTime:relativeDuration:animations:
指定关键帧动画的单帧的计时和动画值。
+ performSystemAnimation:onViews:options:animations:completion:
在一个或更多的视图上执行一个指定的系统提供的动画,以及您定义的可选的并行动画。
+ animateWithDuration:delay:usingSpringWithDamping:initialSpringVelocity:options:animations:completion:
使用与物理弹簧运动相对应的计时曲线执行视图动画。
+ performWithoutAnimation:
使一个视图的转场动画失效。
动画视图
下面方法的使用是被禁止的。用 UIViewPropertyAnimator 类来代替执行动画。
+ beginAnimations:context:
标记一个开始/提交动画块的起始。
+ commitAnimations
标记一个开始/提交动画块的结尾并安排动画的执行。
+ setAnimationStartDate:
设置当前动画块的开始时间。
+ setAnimationsEnabled:
设置动画是否使能。
+ setAnimationDelegate:
设置动画消息的代理。
+ setAnimationWillStartSelector:
当动画开始的时候设置给动画的代理对象发的消息。
+ setAnimationDidStopSelector:
当动画停止的时候设置给动画的代理对象发的消息。
+ setAnimationDuration:
在一个动画块中设置动画的持续时间(以秒以单位)。
+ setAnimationDelay:
在动画块内动画属性变化之前,设置等待时长。
+ setAnimationCurve:
设置动画块内属性更改时要使用的曲线。
+ setAnimationRepeatCount:
设置动画块内动画的重复次数。
+ setAnimationRepeatAutoreverses:
设置在一个动画块内动画是否自动反转它们自己。
+ setAnimationBeginsFromCurrentState:
设置在当前的状态动画是否应该开始执行。
+ setAnimationTransition:forView:cache:
在动画块执行期间,设置一个转场到视图上。
areAnimationsEnabled
返回一个布尔值决定是否动画使能。
常量
UIViewAnimationOptions
用于使用块对象设置动画视图的选项。
UIViewAnimationCurve
指定支持的动画曲线。
UIViewAnimationTransition
使用在动画块对象内的动画转场选项。
UISystemAnimation
当动画完成时,从层次结构中移除视图的选项。
UIViewKeyframeAnimationOptions
用 (animateKeyframesWithDuration:delay:options:animations:completion:) 方法设置关键帧动画选项。
UILayoutConstraintAxis
在对象之间指定一个水平或竖直的布局约束的key值。
UIViewTintAdjustmentMode
视图的tint适应模式。
UILayoutFittingCompressedSize
使用最小的可能大小的选项。
UILayoutFittingExpandedSize
使用最大的可能大小的选项。
UIViewNoIntrinsicMetric
给定数值视图属性缺少内部度量。
UIViewAutoresizing
自动视图大小的选项。
UISemanticContentAttribute
视图内容的语义描述,当在由左向右或由右向左的布局转变中,用于决定视图是否被弹起。
关系
继承自 UIResponder
遵守以下协议:
CALayerDelegate
NSCoding
UIAppearance
UIAppearanceContainer
UICoordinateSpace
UIDynamicItem
UIFocusItem
UIFocusItemContainer
UITraitEnvironment