如何使用动画alpha制作可点击的UIButton?

时间:2011-01-21 08:55:06

标签: cocoa-touch core-animation uibutton

我想创建一个“呼吸”的UIButton,将其alpha值从1.0更改为0.7,然后再重复。代码非常简单,但是当动画运行时,按钮不可点击。对于一个按钮,这是一个遗憾。我可以理解为什么当动画改变它的位置时按钮可能无法点击,但改变alpha对我来说似乎是无害的。有没有办法让按钮可以点击,保持动画而不是手动动画?

1 个答案:

答案 0 :(得分:10)

使用不透明度。

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"];