3
我想创建一个“呼吸”的UIButton
,将其alpha从1.0更改为0.7并重新返回。代码非常简单,但是当动画运行时,按钮不可点击。这是一个可惜的,一个按钮。我可以理解为什么当动画改变位置时按钮可能不可点击,但改变alpha对我来说似乎是无害的。有没有办法使按钮可点击,保持动画,而不是手工动画?如何制作带有动画Alpha的可点击的UIButton?
我想创建一个“呼吸”的UIButton
,将其alpha从1.0更改为0.7并重新返回。代码非常简单,但是当动画运行时,按钮不可点击。这是一个可惜的,一个按钮。我可以理解为什么当动画改变位置时按钮可能不可点击,但改变alpha对我来说似乎是无害的。有没有办法使按钮可点击,保持动画,而不是手工动画?如何制作带有动画Alpha的可点击的UIButton?
使用不透明度。
UIButton *btnTest = [UIButton buttonWithType:UIButtonTypeRoundedRect];
btnTest.frame = CGRectMake(0, 0, 100, 100);
[btnTest setTitle:@"Breathe" forState:UIControlStateNormal];
[btnTest addTarget:self action:@selector(btnPressed:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:btnTest];
CABasicAnimation *fadeAnimation=[CABasicAnimation animationWithKeyPath:@"opacity"];
fadeAnimation.fromValue=[NSNumber numberWithFloat:0.7];
fadeAnimation.toValue=[NSNumber numberWithFloat:1.0];
fadeAnimation.duration=1.0;
fadeAnimation.repeatCount=INFINITY;
fadeAnimation.autoreverses=YES;
[btnTest.layer addAnimation:fadeAnimation forKey:@"fadeInOut"];
完美,这个工程。我试图在动画层而不是按钮之前,但我正在寻找`alpha`属性并忽略了`opacity`。无论哪种方式,它都不适用于隐式动画,您必须将动画直接附加到图层才能使按钮生效。谢谢! – zoul 2011-01-21 17:06:20