ios - 根据属性值更改颜色

标签 ios objective-c uiview uicolor

我有一个自定义的 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/

相关文章:

ios - 防止快速点击 View

ios - 链接 MacOSX 上安装的 iOS 应用程序的 dylib

iphone - UIButton 简单应用程序 - iPhone 应用程序中的错误

ios - 检测我的 Controller 是否显示为弹出窗口

ios - 无法在 react native TextInput 中将自动更正设置为 {false}

ios - 尝试保存 NSManagedObject 时崩溃

ios - 中心 UIView 没有重叠不同大小的邻居 View ?

objective-c - 如何优化目录列表? (enumeratorAtPath 和递归调用 contentsOfDirectoryAtPath)

ios - 刷卡中的数组获取第一个元素

ios - 创建复杂 UIView 的更快方法?