我要为视图的阴影属性设置动画。最初我尝试过:
function propertiesTest() {
var ps=PropertiesService.getScriptProperties();
ps.setProperty('test','');
for(var i=0;i<10;i++) {
ps.setProperty('test',ps.getProperty('test') + '\n' + i)
}
Logger.log(ps.getProperty('test'));
}
鉴于UIView.animate不适用于图层,因此不起作用。
我测试了以下帖子(How to animate layer shadowOpacity?),但仅指定了如何为阴影不透明度设置动画。有没有办法像使用动画blocl一样对我所有的阴影属性进行动画处理?
答案 0 :(得分:0)
您非常接近,只需为所有属性更改创建多个CABasicAnimation
,然后就可以使用CAAnimationGroup
因此,假设您有2个CABasicAnimation
动画,例如:
let shadownOpacityAnimation = CABasicAnimation(keyPath: "shadowOpacity")
...
let shadowRadiusAnimation = CABasicAnimation(keyPath: "shadowRadius")
...
然后您可以使用CAAnimationGroup
let group = CAAnimationGroup()
group.duration = 0.2
group.repeatCount = 1
group.autoreverses = false
group.timingFunction = CAMediaTimingFunction(name: .easeInEaseOut)
group.animations = [shadownOpacityAnimation, shadowRadiusAnimation]
layer.add(group, forKey: "allAnimations")
您可以在此答案中了解更多信息:
How can I create an CABasicAnimation for multiple properties?