2014-05-14 59 views
0

在我的UIColor类别中,我有以下方法。getHue:饱和度:亮度:alpha:用灰色返回false?

- (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; 
} 

它与“颜色”效果很好。但是使用灰色阴影如[UIColor darkGrayColor][UIColor lightGrayColor]它会返回false。

任何想法为什么?

而我该如何解决我的方法来处理灰色?

+0

一些相关色彩空间? –

+0

它可能与“色相”和“饱和度”在纯灰色阴影中等于零有关(r = g = b) –

回答

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; 
} 
相关问题