在xcode中制作RGB颜色

时间:2012-04-30 05:45:18

标签: ios xcode swift

我正在使用照相馆颜色的RGB值,并在xcode中使用相同值。颜色-R-160,G-97,B-5 ...... photoshop中的颜色显示为黄色,但在xcode中

myLabel.textColor= [UIColor colorWithRed:160 green:97 blue:5 alpha:1] ;

颜色显得偏白。

为什么会出现这种差异?

5 个答案:

答案 0 :(得分:197)

目标C

您必须提供0到1.0之间的值。因此,将RGB值除以255。

myLabel.textColor= [UIColor colorWithRed:(160/255.0) green:(97/255.0) blue:(5/255.0) alpha:1] ;

<强>更新

您也可以使用此宏

#define Rgb2UIColor(r, g, b)  [UIColor colorWithRed:((r) / 255.0) green:((g) / 255.0) blue:((b) / 255.0) alpha:1.0]

你可以像这样打电话给任何一个班级

 myLabel.textColor = Rgb2UIColor(160, 97, 5);

夫特

这是正常颜色的synax

myLabel.textColor = UIColor(red: (160/255.0), green: (97/255.0), blue: (5/255.0), alpha: 1.0) 
//The values should be between 0 to 1

Swift对宏不太友好

  

复杂的宏用于C和Objective-C但没有对应的   在斯威夫特。复杂的宏是不定义常量的宏,   包括带括号的函数式宏。您使用复杂的宏   在C和Objective-C中避免类型检查约束或避免   重新输入大量的样板代码。但是,宏可以做   调试和重构很困难。在Swift中,您可以使用函数   和泛型,以达到相同的结果,没有任何妥协。   因此,C和Objective-C源代码中的复杂宏   您的Swift代码无法使用这些文件。

所以我们使用扩展名

extension UIColor {
    convenience init(_ r: Double,_ g: Double,_ b: Double,_ a: Double) {
        self.init(red: r/255, green: g/255, blue: b/255, alpha: a)
    }
}

您可以像

一样使用它
myLabel.textColor = UIColor(160.0, 97.0, 5.0, 1.0)

答案 1 :(得分:25)

你已经得到了正确的答案,但如果你不喜欢我这样的UIColor界面,你可以这样做:

#import "UIColor+Helper.h"
// ...
myLabel.textColor = [UIColor colorWithRGBA:0xA06105FF];

的UIColor + Helper.h:

#import <UIKit/UIKit.h>

@interface UIColor (Helper)
+ (UIColor *)colorWithRGBA:(NSUInteger)color;
@end

的UIColor + Helper.m:

#import "UIColor+Helper.h"

@implementation UIColor (Helper)

+ (UIColor *)colorWithRGBA:(NSUInteger)color
{
    return [UIColor colorWithRed:((color >> 24) & 0xFF) / 255.0f
                           green:((color >> 16) & 0xFF) / 255.0f
                            blue:((color >> 8) & 0xFF) / 255.0f
                           alpha:((color) & 0xFF) / 255.0f];
}

@end

答案 2 :(得分:5)

Yeah.ios仅支持RGB值介于0和1之间。接近范围[0,1]

答案 3 :(得分:4)

Interface Builder的颜色选择器插件

Panic有一个很好的颜色选择器,可以与IB一起使用:http://panic.com/~wade/picker/

Xcode插件

这个为您提供了一个用于选择颜色的GUI:http://www.youtube.com/watch?v=eblRfDQM0Go

<强>代码

UIColor *color = [UIColor colorWithRed:(160/255.0) green:(97/255.0) blue:(5/255.0) alpha:1.0];

广告库和图书馆

有一个名为MPColorTools的漂亮广告连播:https://github.com/marzapower/MPColorTools

答案 4 :(得分:0)

值由图像的位确定。 8位0到255

16位...一些荒谬的数字......大约是0到65,000。

32位为0到1

我使用带有32位图像的.004 ...当乘以255

时,这得到1.02