我有一个自定义的 UIView,它是一个圆圈,我想根据属性值更改圆圈的颜色。该值在 0 到 100 的范围内,其中 100 应该是红色,0 应该是黄色。有没有办法根据属性计算当前颜色?
弗兰茨
最佳答案
在 RGB 中红色是:
{ 1.0, 0.0, 0.0 }
黄色是:
{ 1.0, 1.0, 0.0 }
所以我们可以看到需要从 0 到 100 的输入计算绿色 channel ,但是需要反转该范围,因为红色是 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 对象可从 circle
属性访问,并且它本身具有 color
属性。
关于ios - 根据属性值更改颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25405758/