在xcode中制作RGB颜色

我正在使用从照片店的颜色的RGB值,并在xcode中使用相同的值。颜色R-160,G-97,B-5 …在Photoshop中的颜色显示为淡黄色,但在Xcode时,当我使用

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

颜色显得发白。

为什么这种差异正在发生?

Objective-C的

你必须给0和1.0之间的值。 因此,将RGB值除以255。

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

更新:

你也可以使用这个macros

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

你可以打电话给你的任何一个class级

  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对macros不太友好

在C和Objective-C中使用复杂的macros,但在Swift中没有对应的macros。 复杂的macros是不定义常量的macros,包括括起来的函数式macros。 你在C和Objective-C中使用复杂的macros来避免types检查约束,或者避免重新input大量的样板代码。 但是,macros可能会使debugging和重构变得困难。 在Swift中,您可以使用函数和generics来获得相同的结果,而不会有任何妥协。 因此,C和Objective-C源文件中的复杂macros不能用于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) 

你已经得到了正确的答案,但是如果你不喜欢像我这样的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 

Yeah.ios支持RGB值只能在0和1之间变化。closures范围[0,1]

Interface Builder的颜色select器插件

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

Xcode插件

这一个给你一个select颜色的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]; 

豆荚和图书馆

有一个很好的pod,命名为MPColorTools : https : //github.com/marzapower/MPColorTools

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

16位…一些荒谬的数字.. 0至65000约。

32位是0到1

我使用.004和32位图像…当乘以255时,结果为1.02