Вопрос по xcode, ios – Создание цвета RGB в xcode

63

Я использую RGB-значения цвета из фотомагазина и использую те же самые значения в xcode. Color-R-160, G-97, B-5 ... цвет в фотошопе кажется желтоватым, но в xcode при использовании

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

цвет кажется беловатым.

Почему эта разница происходит?

Спасибо за помощь:) amar

Ваш Ответ

5   ответов
196
Objective-C

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);
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

Свифт не очень дружит с макросами

акросы @Complex используются в 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)
    }
}

Ты можешь использовать это как

myLabel.textColor = UIColor(160.0, 97.0, 5.0, 1.0)
Отличное спасибо за ответ Supertecnoboff
Какой смысл иметь дробное значение цвета? Я не могу вывести любое такое значение в Photoshop? nipponese
@ nipponese: причина использования рациональных значений цвета в том, что это упрощает и ускоряет умножение каналов. Например, для смешивания.UIColor представляет цвет RGB (A) с использованием диапазона [0..1]. Вышеприведенные вычисления просто масштабируют каждый канал из диапазона [0..255] в диапазон [0..1]. В Photoshop вы используете диапазон [0..255] (например,rgba(160, 97, 5, 1)) или его шестнадцатеричный эквивалент (например,#A06105FF). jweyrich
Мне просто нужен макрос:) Mani
+ 1: для макроса .. Fahim Parkar
5

диапазон [0,1]

25

но если тебе не нравится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
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/MPColorTool

0

16 бит ... какое-то нелепое число. От 0 до 65 000 ок.

32 бита - от 0 до 1

Я использую .004 с 32-битными изображениями ... в результате получается 1,02 при умножении на 255

Похожие вопросы