为什么getHue:饱和度:亮度:alpha:返回false为灰色?

时间:2014-05-14 23:23:46

标签: cocoa-touch uicolor

在我的UIColor类别中,我有以下方法。

- (UIColor *)lighterColor
{
    CGFloat h, s, b, a;
    if ([self getHue:&h saturation:&s brightness:&b alpha:&a])
        return [UIColor colorWithHue:h
                          saturation:s
                          brightness:MIN(b * 1.3, 1.0)
                               alpha:a];
    return nil;
}

它适用于" Colors"。但是对于像[UIColor darkGrayColor][UIColor lightGrayColor]这样的Grays阴影,它会返回false。

知道为什么吗?

我如何修复我的方法来处理灰色?

1 个答案:

答案 0 :(得分:0)

我没有找到“为什么”

但问题如下:使用getWhite:alpha

- (UIColor *)lighterColor
{
    CGFloat h, s, b, a;
    if ([self getHue:&h saturation:&s brightness:&b alpha:&a]) {
        return [UIColor colorWithHue:h
                          saturation:s
                          brightness:MIN(b * 1.3, 1.0)
                               alpha:a];
    }

    CGFloat white, alpha;
    if ([self getWhite:&white alpha:&alpha]) {
        white = MIN(1.3*white, 1.0);
        return [UIColor colorWithWhite:white alpha:alpha];
    }

    return nil;
}