ama*_*mar 63 objective-c uicolor ios
我正在使用照片商店中颜色的RGB值,并在xcode中使用相同值.颜色-R-160,G-97,B-5 ...... photoshop中的颜色显示为黄色,但在使用xcode时
myLabel.textColor = [UIColor colorWithRed:160 green:97 blue:5 alpha:1] ;
Run Code Online (Sandbox Code Playgroud)
颜色看起来发白.
为什么会出现这种差异?
iPr*_*abu 199
您必须提供0到1.0之间的值.因此,将RGB值除以255.
myLabel.textColor= [UIColor colorWithRed:(160/255.0) green:(97/255.0) blue:(5/255.0) alpha:1] ;
Run Code Online (Sandbox Code Playgroud)
更新:
您也可以使用此宏
#define Rgb2UIColor(r, g, b) [UIColor colorWithRed:((r) / 255.0) green:((g) / 255.0) blue:((b) / 255.0) alpha:1.0]
Run Code Online (Sandbox Code Playgroud)
你可以在这样的任何一个班级打电话
myLabel.textColor = Rgb2UIColor(160, 97, 5);
Run Code Online (Sandbox Code Playgroud)
这是正常的颜色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
Run Code Online (Sandbox Code Playgroud)
Swift对宏不太友好
复杂的宏在C和Objective-C中使用,但在Swift中没有对应的.复杂的宏是不定义常量的宏,包括带括号的,类似函数的宏.您可以在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)
}
}
Run Code Online (Sandbox Code Playgroud)
你可以像使用它一样
myLabel.textColor = UIColor(160.0, 97.0, 5.0, 1.0)
Run Code Online (Sandbox Code Playgroud)
jwe*_*ich 25
你已经得到了正确的答案,但如果你不喜欢UIColor像我这样的界面,你可以这样做:
#import "UIColor+Helper.h"
// ...
myLabel.textColor = [UIColor colorWithRGBA:0xA06105FF];
Run Code Online (Sandbox Code Playgroud)
的UIColor + Helper.h:
#import <UIKit/UIKit.h>
@interface UIColor (Helper)
+ (UIColor *)colorWithRGBA:(NSUInteger)color;
@end
Run Code Online (Sandbox Code Playgroud)
的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
Run Code Online (Sandbox Code Playgroud)
Interface Builder的颜色选择器插件
Panic 有一个很好的颜色选择器,它可以很好地与 IB 配合使用:http : //panic.com/~wade/picker/
Xcode插件
这个为您提供了一个用于选择颜色的 GUI:http : //www.youtube.com/watch?v=eblRfDQM0Go
目标-C
UIColor *color = [UIColor colorWithRed:(160/255.0) green:(97/255.0) blue:(5/255.0) alpha:1.0];
Run Code Online (Sandbox Code Playgroud)
迅速
let color = UIColor(red: 160/255, green: 97/255, blue: 5/255, alpha: 1.0)
Run Code Online (Sandbox Code Playgroud)
Pod 和库
有一个不错的 pod 名为MPColorTools:https : //github.com/marzapower/MPColorTools
| 归档时间: |
|
| 查看次数: |
104777 次 |
| 最近记录: |