ios - 在 iOS 中使用动画更改按钮颜色

标签 ios objective-c animation

我的应用程序中有一个下载过程,我想在下载开始时开始更改下载按钮的颜色,直到下载完成。是否有任何动画可以更改带有起点和终点的按钮标题颜色?我不知道动画持续时间,因为它取决于互联网连接和文件大小。我有以下动画,但它与我想要的不一样:

[UIView animateWithDuration:1.0 animations:^{
    dlButton.backgroundColor = [UIColor MyColor];
}];

最佳答案

我认为当您需要更新进度时,您必须手动更改backgroundColor

首先获取下载进度:

CGFloat progress = xxxx

然后你需要实现一个方法来更新backgroundColor,像这样:

- (void)changeColorByProgress:(CGFloat)progress {
    CGFloat red, green, blue;
    [[UIColor grayColor] getRed:&red green:&green blue:&blue alpha:NULL];

    CGFloat completedRed, completedGreen, completedBlue;
    [[UIColor whiteColor] getRed:&completedRed green:&completedGreen blue:&completedBlue alpha:NULL];

    [self.button setTitleColor:[UIColor colorWithRed:red + (completedRed - red) * progress
                                       green:green + (completedGreen - green) * progress
                                        blue:blue + (completedBlue - blue) * progress
                                       alpha:1]
                      forState:UIControlStateNormal];

}

检查我的示例项目: https://www.dropbox.com/s/nxq90sz3w65oa0k/TestManualChangeColor.zip?dl=0

关于ios - 在 iOS 中使用动画更改按钮颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31912111/

相关文章:

ios - 在许多 Mac 上运行 UIAutomation 脚本?

iphone - 如何在 IOS 设备上运行示例项目?

ios - Appirater 中使用天数或次数有优先权吗?

php - 通过来自 iOS 的 http post 请求在 php 中接收图像

ios - 当用户触摸屏幕时 uiimageview 动画停止

html - 在第二次页面加载时停止 CSS 动画

ios - AVAudioRecorder 和 AirPlay 镜像

ios - 屏幕关闭时的 iBeacon 事件

ios - 有没有办法使用 gmail api 安排邮件?

android - 如何将动画置于最前面 : bringToFront and zAdjustment/Z-ordering