【问题标题】:Difference between stock UIColor and custom UIColor库存 UIColor 和自定义 UIColor 之间的区别
【发布时间】:2016-06-23 10:59:58
【问题描述】:

我正在尝试从 UIColor 对象中获取 RGB 值。

如果我对 UIColor 对象执行以下操作,它会起作用

UIColor *top = [UIColor lightGrayColor];
const CGFloat* colorsTop = 0;
colorsTop = CGColorGetComponents(top.CGColor);

顶部出来为:UICachedDeviceRGBColor * 0x7a7d5b50

但是,如果我执行以下操作,它将失败。谁能解释一下原因?

UIColor *top = [UIColor colorWithRed:1 green:1 blue:1 alpha:1];
const CGFloat* colorsTop = 0;
colorsTop = CGColorGetComponents(top.CGColor);

顶部出来为:UIColor * 0x7a7d5cb0

最后一个错误:EXC_BAD_ACCESS (code=1, 0xb7a7d5b9)

【问题讨论】:

  • 它是如何失败的 - 会发生什么?
  • “失败”是什么意思?它不编译吗?它会崩溃吗?你的手机会爆炸吗?错误信息是什么?
  • 您实际上想在这里做什么?似乎您正试图从颜色中获取 RGB 值?
  • 是的,我喜欢 RGB 颜色
  • 看我的回答。您在这里使用了错误的方法。

标签: objective-c xcode uicolor


【解决方案1】:

要获取UIColor 的 RGB 组件,您应该使用此方法...

- (BOOL)getRed:(CGFloat *)red green:(CGFloat *)green blue:(CGFloat *)blue alpha:(CGFloat *)alpha

像这样……

CGFloat red = 0;
CGFloat green = 0;
CGFloat blue = 0;
CGFloat alpha = 0;

[someUIColor getRed:&red green:&green blue:&blue alpha:&alpha];

redgreenbluealpha 现在将包含该颜色的值。

【讨论】:

    猜你喜欢
    • 2018-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-18
    • 2013-05-10
    相关资源
    最近更新 更多