在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