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