iOS SDK Interface Builder 的 RGB slider 产生与 UIColor withRGB 不同的颜色

标签 ios ios5 interface-builder uicolor

在界面生成器中,我将 UILabel 的颜色更改为此屏幕截图,红色 255、绿色 159、蓝色 0 和 100% 的不透明度。呈现橙色。

IB RGB Sliders Color Produced in Center

我以编程方式更改 UILabel 颜色,而不是使用此...将其改回原始颜色

timeLabel.textColor = [UIColor colorWithRed:255.0 green:159.0 blue:0.0 alpha:1.0];

它给出了这种颜色.... UIColor color

我认为应该是一样的,有人知道我做错了什么吗? 请帮忙,谢谢。

最佳答案

编辑:两年后,这篇文章仍然得到一些业力和评论。将我的旧答案修改为更好的答案。

要为 UIColor 添加一个可以接受 0 到 255 之间输入的函数,最明智且可重用的方法是创建一个自定义类别。更易于阅读,更易于调试,其他人更容易做出贡献,并随着项目的发展而不仅仅是 View View Controller ,从而使项目保持整洁和结构化。因此,添加以下文件,并将它们导入到您需要的 m 文件中

UIColor+Extra.h

@interface UIColor (Extra)
+ (UIColor *)colorWithR:(uint)red G:(uint)green B:(uint)blue A:(uint) alpha
+ (UIColor *) randomColor;
+ (UIColor *) colorWithHex:(uint) hex;
@end

UIColor+Extra.m

#import "UIColor+Extra.h"

@implementation UIColor (Extra)

+ (UIColor *)colorWithR:(uint)red G:(uint)green B:(uint)blue A:(uint) alpha
{
  return [UIColor colorWithRed:red/255.0f green:green/255.0f blue:blue/255.0f alpha:alpha/100.f];
}

+ (UIColor *) randomColor
{
    CGFloat red =  (CGFloat)random()/(CGFloat)RAND_MAX;
    CGFloat blue = (CGFloat)random()/(CGFloat)RAND_MAX;
    CGFloat green = (CGFloat)random()/(CGFloat)RAND_MAX;
    return [UIColor colorWithRed:red green:green blue:blue alpha:1.0];
}
+ (UIColor *) colorWithHex:(uint) hex
{
    int red, green, blue, alpha;

    blue = hex & 0x000000FF;
    green = ((hex & 0x0000FF00) >> 8);
    red = ((hex & 0x00FF0000) >> 16);
    alpha = ((hex & 0xFF000000) >> 24);

    return [UIColor colorWithRed:red/255.0f green:green/255.0f blue:blue/255.0f alpha:alpha/255.f];
}
@end

关于iOS SDK Interface Builder 的 RGB slider 产生与 UIColor withRGB 不同的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9341674/

相关文章:

ios - 图片 URL 不缓存

ios - Swift - Obj-c 链接停止工作

iphone - 在iOS应用程序中,为什么prepareForSegue发生在didSelectRowAtIndexPath之前

ios - 堆栈 View 中的标签字体大小太大

objective-c - 如何获取对 xib 文件中创建的 NSWindow 的引用?

ios - 如何在 UITableViewCell 上使用 CAGradientLayers

ios - 如何为 arm64 构建 zlib

iOS 配置仍然无法工作 - key 和 cer。未连接?

objective-c - 通过 View Controller 将委托(delegate)传递给 View Controller

objective-c - NSTextField 辞职第一响应者