我有一个自定义UIView,它是一个圆圈,我想根据属性的值更改圆的颜色。该值的范围为0到100,其中100应为红色,0应为黄色。有没有办法根据属性计算当前颜色?
弗朗兹
答案 0 :(得分:1)
RGB红色是:
{ 1.0, 0.0, 0.0 }
和黄色是:
{ 1.0, 1.0, 0.0 }
所以我们可以看到它是需要从0到100的输入计算的绿色通道,但是当红色为100而黄色为0时,需要反转该范围。
所以(未经测试):
- (void)setCircleColor:(int)value
{
if (value < 0)
value = 0;
else if (value > 100)
value = 100;
CGFloat green 1.0 - ((CGFloat)value / 100.0);
UIColor *color = [UIColor colorWithRed:1.0
green:green
blue:0.0
alpha:1.0];
self.circle.color = color;
}
请注意,这假设该属性名为circleColor
,并且您的圈子对象可从circle
属性访问,并且其自身具有color
属性。