首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在进度变化时更改UIProgressView颜色

如何在进度变化时更改UIProgressView颜色
EN

Stack Overflow用户
提问于 2015-01-08 14:18:08
回答 2查看 2.8K关注 0票数 0

当进度发生变化时,我想更改我的UIProgressView进度颜色。基本上,它开始是白色的,在接近尾端的时候开始变蓝。

这是我的密码:

代码语言:javascript
复制
-(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() )吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-01-08 14:32:44

在我看来,您实际上正在设置等于或小于255的整数值。关于苹果的文档,所有参数都应该是在0.0到1.0之间的CGFloat类型。

请考虑这个链接。

ref/occ/clm/UIColor/colorWithRed:green:blue:alpha

希望这能有所帮助。

票数 1
EN

Stack Overflow用户

发布于 2015-01-08 14:30:02

正如伊恩MacDonald所说,UIColor的颜色为红色:绿色:蓝色:阿尔法:从0.0到1.0

下面是正确的代码:

代码语言:javascript
复制
-(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];


}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27842261

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档