Создание цвета RGB в xcode
Я использую RGB-значения цвета из фото-магазина и использую то же самое в xcode, что и значения. Цвета-R-160, G-97, B-5 ... цвет в фотошопе выглядит желтоватым, но в xcode, когда я использовал
myLabel.textColor= [UIColor colorWithRed:160 green:97 blue:5 alpha:1] ;
цвет выглядит беловатым.
Почему эта разница происходит?
Ответы
Ответ 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] ;
Update:
Вы также можете использовать этот макрос
#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);
Swift
Это нормальная цветовая синтаксис
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)
Ответ 2
Вы уже получили правильный ответ, но если вам не нравится интерфейс 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
Ответ 3
Yeah.ios поддерживает RGB-валур для диапазона от 0 до 1... close [0,1]
Ответ 4
Плагин выбора цвета для Interface Builder
Там хороший подборщик цветов от Panic, который хорошо работает с IB: http://panic.com/~wade/picker/
Плагин Xcode
Это дает вам графический интерфейс для выбора цветов: 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
Ответ 5
Значения определяются битом изображения.
8 бит от 0 до 255
16 бит... какое-то смешное число от 0 до 65 000.
32 бит - от 0 до 1
Я использую .004 с 32-битными изображениями... это дает 1.02 в результате при умножении на 255