按下时重现ios7按钮的颜色效果

时间:2013-10-29 18:29:24

标签: ios objective-c cocoa-touch uibutton ios7

这是一个重复的问题:How to animate transition from one state to another for UIControl/UIButton?但未提及:Fading out an UIButton when touched

然而Marty提供的答案:How to animate transition from one state to another for UIControl/UIButton?似乎很好,但对我不起作用,高亮状态和正常状态之间没有动画。

我想要做的是在ios7中复制圆形按钮上的炫酷效果:当按下按钮时,按钮会充满颜色,快速消失并带有淡出效果。

我有2张正常状态和高亮状态的图像,基本上我认为我应该将按钮子类化并在它们之间插入动画效果

了解最佳方法是什么?

1 个答案:

答案 0 :(得分:2)

基于此处找到的答案Fading out an UIButton when touched我修改了如下所示的代码,其中overlayButton是位于按钮上方的隐藏UIImage

- (IBAction)buttonAction:(UIButton*)sender {
overlayButton.alpha = 1;
[overlayButton setHidden:FALSE];
[[UIApplication sharedApplication] beginIgnoringInteractionEvents];
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.3];
[UIView setAnimationDelegate:[UIApplication sharedApplication]];
[UIView setAnimationDidStopSelector:@selector(endIgnoringInteractionEvents)];
overlayButton.alpha = 0;
[UIView commitAnimations];
}