我正在使用来自 Photoshop 的颜色的 RGB 值,并在 Xcode 中使用相同的值,这些值是.Color-R-160,G-97,B-5 ... Photoshop 中的颜色显示为黄色,但在我使用时在 Xcode 中
myLabel.textColor = [UIColor colorWithRed:160 green:97 blue:5 alpha:1] ;
颜色呈白色。
为什么会发生这种差异?
我正在使用来自 Photoshop 的颜色的 RGB 值,并在 Xcode 中使用相同的值,这些值是.Color-R-160,G-97,B-5 ... Photoshop 中的颜色显示为黄色,但在我使用时在 Xcode 中
myLabel.textColor = [UIColor colorWithRed:160 green:97 blue:5 alpha:1] ;
颜色呈白色。
为什么会发生这种差异?
您必须给出 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);
这是正常的颜色合成
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 中使用,但在 Swift 中没有对应物。复杂宏是不定义常量的宏,包括带括号的、类似函数的宏。您在 C 和 Objective-C 中使用复杂的宏来避免类型检查约束或避免重新输入大量样板代码。但是,宏会使调试和重构变得困难。在 Swift 中,您可以使用函数和泛型来获得相同的结果,而不会做出任何妥协。因此,您的 Swift 代码无法使用 C 和 Objective-C 源文件中的复杂宏。
所以我们为此使用扩展名
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
是的.ios 仅支持 RGB 值在 0 和 1 之间的范围内..它的接近范围 [0,1]
Interface Builder 的颜色选择器插件
Panic 有一个不错的颜色选择器,它适用于 IB: http: //panic.com/~wade/picker/
Xcode 插件
这个为您提供了一个用于选择颜色的 GUI:http ://www.youtube.com/watch?v=eblRfDQM0Go
Objective-C
UIColor *color = [UIColor colorWithRed:(160/255.0) green:(97/255.0) blue:(5/255.0) alpha:1.0];
迅速
let color = UIColor(red: 160/255, green: 97/255, blue: 5/255, alpha: 1.0)
Pod 和库
有一个不错的 pod,名为MPColorTools
:https ://github.com/marzapower/MPColorTools
这些值由图像的位确定。8 位 0 到 255
16 位...一些荒谬的数字..0 到 65,000 左右。
32位是0到1
我将 .004 与 32 位图像一起使用...乘以 255 后得到 1.02