Pergunta

Tenho em um banco de dados algumas linhas onde um campo é o valor ARGB para a cor relacionada.

Tenho que ler todas as linhas dessa tabela e converter o valor ARGB decimal em UIColor.

Pesquisei no Google para encontrar isso, mas não o fiz.

Existe alguma maneira de abordar isso?

Obrigado.

Foi útil?

Solução

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

Você só precisa dividir os valores RGB por 255 para que as coisas sejam configuradas corretamente.

Outras dicas

Aqui está o método que criei para converter um número inteiro ARGB em uma cor da interface do usuário.Testei em diversas cores que temos em nosso sistema .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];
}

você pode definir uma macro e usá-la em todo o seu código

#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]
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top