我有一个将layerOpacity设置为1的 View 。

    theView.layer.shadowOpacity = 1.0;

当 View 位于屏幕下方时,这看起来很好。当我将该 View 向上移动以与另一个具有阴影的 View 齐平时,它们看起来并不好。有什么方法可以使图层上的shadowOpacity动画为0?我尝试使用动画块,但似乎该属性无法设置动画。

编辑:请求无效的代码:
[UIView animateWithDuration:1.0 animations:^{
    splitView2.layer.shadowOpacity = 0;}
                 completion:NULL];

最佳答案

这将正常工作:

#import <QuartzCore/CAAnimation.h>

CABasicAnimation *anim = [CABasicAnimation animationWithKeyPath:@"shadowOpacity"];
anim.fromValue = [NSNumber numberWithFloat:1.0];
anim.toValue = [NSNumber numberWithFloat:0.0];
anim.duration = 1.0;
[vv.layer addAnimation:anim forKey:@"shadowOpacity"];
vv.layer.shadowOpacity = 0.0;

对于Swift 3.0:
 let animation = CABasicAnimation(keyPath: "shadowOpacity")
 animation.fromValue = layer.shadowOpacity
 animation.toValue = 0.0
 animation.duration = 1.0
 view.layer.add(animation, forKey: animation.keyPath)
 view.layer.shadowOpacity = 0.0

关于iphone - 如何设置图层shadowOpacity的动画?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4502569/

10-13 05:32