Как сделать кликабельную кнопку UIB с анимированной альфой? - PullRequest
3 голосов
/ 21 января 2011

Я хотел бы создать UIButton, который «дышит», меняет свою альфа с 1,0 на 0,7 и обратно, повторяя. Код довольно прост, но при запуске анимации кнопка не активируется. Что жаль, для кнопки. Я могу понять, почему кнопка не может быть нажата, когда анимация меняет свою позицию, но изменение альфа кажется мне совершенно безвредным. Есть ли способ сделать кнопку нажатой, сохраняя анимацию и не анимируя вручную?

1 Ответ

10 голосов
/ 21 января 2011

Используйте непрозрачность.

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