当进度发生变化时,我想更改我的UIProgressView进度颜色。基本上,它开始是白色的,在接近尾端的时候开始变蓝。
这是我的密码:
-(void)changeSendProgProgress:(float)progress
{
CGFloat redBlueValue = 255 - (255*progress);
UIColor *colorProg = [UIColor colorWithRed:redBlueValue green:redBlueValue blue:255 alpha:1.0];
[sendProgress setProgressTintColor:colorProg];
[sendProgress setProgress:progress];
}唯一的问题是,进程的颜色没有变化,它始终保持白色直至结束。为什么它不改变?我应该使用类似于UIThreading的dispatch_async(dispatch_get_main_queue() )吗?
发布于 2015-01-08 14:32:44
在我看来,您实际上正在设置等于或小于255的整数值。关于苹果的文档,所有参数都应该是在0.0到1.0之间的CGFloat类型。
请考虑这个链接。
ref/occ/clm/UIColor/colorWithRed:green:blue:alpha
希望这能有所帮助。
发布于 2015-01-08 14:30:02
正如伊恩MacDonald所说,UIColor的颜色为红色:绿色:蓝色:阿尔法:从0.0到1.0
下面是正确的代码:
-(void)changeSendProgProgress:(float)progress
{
CGFloat redBlueValue = (255 - (255*progress)) /255.0;
UIColor *colorProg = [UIColor colorWithRed:redBlueValue green:redBlueValue blue:1.0 alpha:1.0];
[sendProgress setProgressTintColor:colorProg];
[sendProgress setProgress:progress];
}https://stackoverflow.com/questions/27842261
复制相似问题