
视图和菜单
|
79
Values
属性是一个数组,包含了在动画过程中有可能用到的值。这里,我们使用
了
3
个值:
0
,
1.2
和
1.0
。这些值将用于设置动画的缩放(
Scale
)属性:动画一开
始时,缩放值为
0
(即缩小到不可见),然后放大到视图原有大小的
1.2
倍,再恢
复到视图原有大小(
1.0
倍)。
KeyTimes
属性也是一个数组,长度必须和
Values
数组的长度一致。
KeyTimes
数组
中的每个数值对应于
Values
数组中每个值,表示该值在整个动画进度的百分之几
时进行修改,其取值范围为
0~1
,
0
表示动画开始,
1
表示动画结束。
在本例中,在整个动画进行到
70%
的时间时
,
将
Scale
值设置为
Values
属性中的
第二个值
1.2
,因为
1.2
和
0.7
在各自数组中的位置是对应的。我们在动画第一阶段
将按钮设置为不可见,这个过程花的时间稍长一点(
0.7
),这就使我们的动画看
起来更自然一些。
整个动画时长设置为
0.4
秒,同时定时器函数被设置为“
ease out
”。这将使动画在
快结束的时候速度自然变慢。这同样能使我们的动画更自然,并减少机械感。
最后,调用
addAnimation(_,forKey:)
方法,将动画对象放到视图的
CALayer
中。
这里,方法中的“
key
”表示一个任意字符串,
Key
用于唯一标识一个动画对象,
以便此后你可以通过
Key
来访问它。
2.11
用
UIAppearance
主题化
UI
样式
问题
你想修改所有视图的颜色或背景图,从而主题化它们的外观。
解决方案
我们可以修改一个视图的
tint color ...