6

我想要做的是,当用户单击按钮时,按钮应该用从下到上的动画填充颜色。

我试过这个添加颜色但没有添加动画效果。

float originalY = btn.frame.origin.y;
float originalH = btn.bounds.size.height;

[UIView animateWithDuration:3.0f
                      delay:1.0f
                    options:UIViewAnimationOptionTransitionFlipFromBottom
                 animations:^{

    btn.frame = CGRectMake(btn.frame.origin.x, (originalY + originalH), btn.bounds.size.width, 0);
    [btn setBackgroundImage:[UIImage imageNamed:@"Screen Shot 2012-11-07 at 4.22.30 PM.png"] forState:UIControlStateNormal];
    [btn setTitleColor:[[UIColor alloc]initWithRed:38.0/255.0 green:38.0/255.0 blue:38.0/255.0 alpha:1.0] forState:UIControlStateNormal];
} completion:^(BOOL finished) {
}];
4

2 回答 2

-1

最好的解决方案是继承 UIButton 并添加一个将背景图像的 alpha 值从 0 更改为 1 的方法。

或者你可以重写 drawRect 方法并在那里用颜色填充背景。

于 2012-11-08T19:58:51.563 回答
-2

我想你可能会做这样的事情,我使用 UIlabel 它也可能适用于 UIButton 。

#import <QuartzCore/QuartzCore.h>

……

'theLabel.layer.backgroundColor = [UIColor whiteColor].CGColor;

[UIView animateWithDuration:2.0 动画:^{ theLabel.layer.backgroundColor = [UIColor greenColor].CGColor; } 完成:NULL];'`

于 2014-08-12T10:46:07.743 回答