web-dev-qa-db-fra.com

Faire de la couleur RVB dans xcode

J'utilise les valeurs RVB d'une couleur d'un magasin de photo et les utilise dans xcode. Les couleurs sont.Couleur-R-160, G-97, B-5 ​​... la couleur dans Photoshop est jaunâtre mais en xcode quand j'ai utilisé

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

la couleur apparaît blanchâtre.

Pourquoi cette différence se passe-t-elle? 

63
amar

Objectif c

Vous devez donner les valeurs entre 0 et 1.0. Alors divisez les valeurs RVB par 255.

myLabel.textColor= [UIColor colorWithRed:(160/255.0) green:(97/255.0) blue:(5/255.0) alpha:1] ;

Mettre à jour:

Vous pouvez aussi utiliser cette macro

#define Rgb2UIColor(r, g, b)  [UIColor colorWithRed:((r) / 255.0) green:((g) / 255.0) blue:((b) / 255.0) alpha:1.0]

et vous pouvez appeler dans l'une de vos classes comme ça

 myLabel.textColor = Rgb2UIColor(160, 97, 5);

Rapide

Ceci est la synax couleur normale

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 n'est pas très amical avec les macros

Les macros complexes sont utilisées en C et en Objective-C mais n’ont pas de contrepartie à Swift. Les macros complexes sont des macros qui ne définissent pas de constantes, y compris les macros entre parenthèses, de type fonction. Vous utilisez des macros complexes en C et Objective-C pour éviter les contraintes de vérification de type ou pour éviter retaper de grandes quantités de code passe-partout. Cependant, les macros peuvent faire débogage et refactoring difficile. Dans Swift, vous pouvez utiliser les fonctions et les génériques pour obtenir les mêmes résultats sans aucun compromis . Par conséquent, les macros complexes qui se trouvent dans les sources C et Objective-C les fichiers ne sont pas mis à la disposition de votre code Swift.

Nous utilisons donc l'extension pour cette

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

Vous pouvez l'utiliser comme

myLabel.textColor = UIColor(160.0, 97.0, 5.0, 1.0)
196
iPrabu

Vous avez déjà la bonne réponse, mais si vous n'aimez pas l'interface UIColor comme moi, vous pouvez le faire:

#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
25
jweyrich

Yeah.ios prend en charge les valeurs RVB comprises entre 0 et 1 seulement.

5
Allamaprabhu

Plug-in de sélection de couleurs pour Interface Builder

Il y a un sélecteur de couleur sympa de Panic qui fonctionne bien avec IB: http://panic.com/~wade/picker/

Plugin Xcode

Celui-ci vous donne une interface graphique pour choisir les couleurs: http://www.youtube.com/watch?v=eblRfDQM0Go

Code

UIColor *color = [UIColor colorWithRed:(160/255.0) green:(97/255.0) blue:(5/255.0) alpha:1.0];

Pods et bibliothèques

Il y a un joli module nommé MPColorTools: https://github.com/marzapower/MPColorTools

4
hfossli

Les valeurs sont déterminées par le bit de l'image . 8 bit 0 à 255

16 bits ... un nombre ridicule..0 à 65.000 environ.

32 bits valent 0 à 1

J'utilise .004 avec des images 32 bits ... cela donne 1,02 en résultat multiplié par 255

0
user2882399