2012-02-24 2 views
2

У меня в базе данных несколько строк, где одно поле является значением ARGB для соответствующего цвета.Создайте объект UIColor из значения ARGB

Я должен прочитать все строки этой таблицы и преобразовать значение ARGB в десятичный код в UIColor.

Я искал эту поисковик, но я этого не сделал.

Есть ли способ приблизиться к этому?

Спасибо.

+0

вам нужно преобразовать значения в десятичной ли? Существует не так много способов конвертировать из десятичного в RGB. –

+0

Я разрабатываю распределенную систему, в которой Back Office разработан в .NET. Для этого есть 2 способа (Color.FromARGB() и Color.ToARGB()). Я думал, что в Objective-C будет что-то подобное, потому что формат ARGB является стандартным .. :( – NemeSys

+0

ARGB поддерживается ... но не в формате двойного значения, который вы предоставляете. Вам нужно разбить десятичную дробь на отдельную значения для работы с реализацией iOS. Я уверен, что это можно сделать, но для этого потребуется дополнительный код, чтобы разбить его. –

ответ

2
text.color = [UIColor colorWithRed:10.0/255.0 green:100.0/255.0 blue:55.0/255.0 alpha:1]; 

Вам просто нужно разделить значения RGB на 255, чтобы правильно настроить вещи.

+0

Да, я знаю это. Но я получаю полное десятичное значение, не разделенное ARGB. Color.ToARGB(). Это значение сохраняется в базе данных, а приложение обращается к этой БД и извлекает значение ARGB за одно десятичное значение. – NemeSys

13

Вот метод, который я придумал для преобразования целого числа ARGB в цвет пользовательского интерфейса. Испытано его на несколько цветов, которые мы имеем в нашей системе .NET

+(UIColor *)colorFromARGB:(int)argb { 
    int blue = argb & 0xff; 
    int green = argb >> 8 & 0xff; 
    int red = argb >> 16 & 0xff; 
    int alpha = argb >> 24 & 0xff; 

    return [UIColor colorWithRed:red/255.f green:green/255.f blue:blue/255.f alpha:alpha/255.f]; 
} 
+0

Это правильный ответ Ty! – daniherculano

1

можно определить макрос и использовать его на протяжении всего кода

#define UIColorFromARGB(rgbValue) [UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 green:((float)((rgbValue & 0xFF00) >> 8))/255.0 \ 
blue:((float)(rgbValue & 0xFF))/255.0 alpha:((float)((rgbValue & 0xFF000000) >> 24))/255.0] 
Смежные вопросы