视图动画在iOS的shadowRadius上无法工作

4

我希望模拟在我的按钮周围产生脉冲的效果。我可以通过更改按钮图层的属性来实现发光效果,但是我无法使其动画化。

目前为止,我尝试了以下方法:

UIColor *confirmButtonColor = self.btnConfirm.currentTitleColor;
self.btnConfirm.layer.shadowOffset = CGSizeZero;

self.btnConfirm.layer.masksToBounds = NO;
self.btnConfirm.layer.shadowColor = confirmButtonColor.CGColor;
self.btnConfirm.layer.shadowRadius = 6.0f;
 self.btnConfirm.layer.shadowOpacity = .0f;
[UIView animateWithDuration:1.2 delay:5 options:UIViewAnimationCurveLinear animations:^{
    self.btnConfirm.layer.shadowOpacity = 1.0f;
}completion:nil];

发光效果出现但没有动画; 我也尝试将所有代码放在动画中,但没有改变。 是的,我导入了Quartz
谢谢。
1个回答

7
我不清楚为什么您的方法不起作用(也许有人可以给我们解释一下),但以下方法可以正常运行:
UIColor *confirmButtonColor = self.btnConfirm.currentTitleColor;
self.btnConfirm.layer.shadowOffset = CGSizeZero;

self.btnConfirm.layer.masksToBounds = NO;
self.btnConfirm.layer.shadowColor = confirmButtonColor.CGColor;
self.btnConfirm.layer.shadowRadius = 6.0f;
self.btnConfirm.layer.shadowOpacity = 1.0f; // Note: You need the final value here
CABasicAnimation* animation = [CABasicAnimation animationWithKeyPath:@"shadowOpacity"];
animation.fromValue = [NSNumber numberWithFloat:.0];
animation.toValue = [NSNumber numberWithFloat:1.0];
[self.btnConfirm.layer addAnimation:animation forKey:@"shadowOpacity"];

是的 @clafou,如果我使用CABasicAnimation它可以工作。然而,如果我使用[UIVew animationWithDuration...],它不起作用。 - Camus
3
UIViewзҡ„animationWithDuration...еҸҜд»Ҙж”ҜжҢҒдёҖдәӣUIKitи§ҶеӣҫеұһжҖ§пјҲиҝҷдәӣеұһжҖ§еңЁUIViewж–ҮжЎЈдёӯйғҪжңүи®°еҪ•пјүпјҢдҪҶе®ғдёҚиғҪеӨ„зҗҶCALayerеұһжҖ§зҡ„еҸҳеҢ–гҖӮеӣ жӯӨпјҢдҪ еҝ…йЎ»дҪҝз”Ёж ёеҝғеҠЁз”»жқҘиҝӣиЎҢеұӮзә§еҠЁз”»гҖӮдҪ д»Қ然еҸҜд»ҘиҺ·еҫ—зӣёеҗҢзҡ„延иҝҹе’Ңзј“еҠЁеҮҪж•°пјҢеҸӘжҳҜйңҖиҰҒеҶҷжӣҙеӨҡзҡ„д»Јз ҒгҖӮ - Clafou

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接