gpt4 book ai didi

objective-c - 我如何使用 "getHue:saturation:brightness:alpha:"?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:48:55 24 4
gpt4 key购买 nike

在iOS 5的UIColor中有这个方法:

- (BOOL)getHue:(CGFloat *)hue saturation:(CGFloat *)saturation brightness:(CGFloat *)brightness alpha:(CGFloat *)alpha

但我不明白我打算如何在代码中使用它。如果我希望从 UIColor 中获取这些组件,我当然不需要逐一说明这些组件?

最佳答案

CGFloat hue;
CGFloat saturation;
CGFloat brightness;
CGFloat alpha;

[aColor getHue:&hue
saturation:&saturation
brightness:&brightness
alpha:&alpha];
//now the variables hold the values

getHue:saturation:brightness:alpha: 返回一个 bool 值,确定 UIColor 是否可以完全转换。

例子:

BOOL b = [[UIColor colorWithRed:.23 green:.42 blue:.9 alpha:1.0] getHue:&hue saturation:&saturation brightness:&brightness alpha:&alpha];
NSLog(@"%f %f %f %f %d", hue, saturation, brightness, alpha, b);

将记录 0.619403 0.744444 0.900000 1.000000 1,因为它是有效的

同时

BOOL b = [[UIColor colorWithPatternImage:[UIImage imageNamed:@"pattern.png"]] getHue:&hue saturation:&saturation brightness:&brightness alpha:&alpha];
NSLog(@"%f %f %f %f %d", hue, saturation, brightness, alpha, b);

记录 0.000000 0.000000 -1.998918 0.000000 0。最后一个 0 是 Bool,所以这是无效的,实际上 brightness 只能在 0.0 到 1.0 之间变化,但这里它包含一些随机的废话。

结论

代码应该是这样的

CGFloat hue;
CGFloat saturation;
CGFloat brightness;
CGFloat alpha;

if([aColor getHue:&hue saturation:&saturation brightness:&brightness alpha:&alpha]){
//do what ever you want to do if values are valid
} else {
//what needs to be done, if converting failed?
//Some default values? raising an exception? return?
}

关于objective-c - 我如何使用 "getHue:saturation:brightness:alpha:"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8265233/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com