36 votes

Comment créer mes propres UIColor personnalisés autres que ceux prédéfinis?

Je veux créer mes propres couleurs RVB qui sont UIColors et que je pourrais utiliser comme UIColor blackColor ou n'importe quel autre.

56voto

EEE Points 2849

Vous pouvez écrire votre propre méthode pour la classe UIColor à l'aide de catégories.

 #import <UIKit/UIKit.h>
@interface UIColor(NewColor)
+(UIColor *)MyColor;
@end

#import "UIColor-NewColor.h"
@implementation UIColor(NewColor)
+(UIColor *)MyColor {
     return [UIColor colorWithRed:0.0-1.0 green:0.0-1.0 blue:0.0-1.0 alpha:1.0f];
}
 

De cette façon, vous créez une nouvelle couleur et maintenant vous pouvez l'appeler comme

 [UIColor MyColor];
 

Vous pouvez également implémenter cette méthode pour obtenir des couleurs aléatoires. J'espère que cela t'aides.

27voto

James Points 428

J'avais besoin de définir un couple de couleurs personnalisées pour une utilisation en plusieurs endroits sur une app, mais les couleurs sont spécifiques à cette application. J'ai pensé à l'aide de catégories, mais ne veulent pas avoir plus de fichiers à inclure à chaque fois. J'ai donc créé un couple de méthodes statiques dans mon délégué d'Application.

Dans MyAppDelegate.h

+ (UIColor*)myColor1;

Dans MyAppDelegate.m

+ (UIColor*)myColor1 {  
return [UIColor colorWithRed:26.0f/255.0f green:131.0f/255.0f blue:32.0f/255.0f alpha:1.0f];  
}

J'ai une méthode par couleur, ou vous pourriez faire une méthode unique et ajouter un paramètre.

Je peux alors l'utiliser n'importe où dans l'application comme ceci:

myView.backgroundColor = [MyAppDelegate myColor1];

J'espère que cela aide quelqu'un d'autre.

8voto

M.Arsalan Points 71
 [UIColor colorWithRed:51.0 / 255.0, green:0.0, blue:153.0 / 255.0];
 

Tant que vous utilisez une valeur en virgule flottante dans votre division, vous ne devez rien lancer. Assurez-vous d'utiliser des valeurs à virgule flottante. Par exemple: 33 / 255 = 0 . Ce qui deviendra noir.

7voto

iPhone Guy Points 741

Il y a plusieurs façons de créer une couleur.

Je préfère utiliser la méthode RVB. Si vous utilisez les valeurs RVB, divisez-les par 255 (je ne me souviens pas pourquoi, mais je sais que vous devez le faire).

 float rd = 225.00/255.00;
float gr = 177.00/255.00;
float bl = 140.00/255.00;
[label setTextColor:[UIColor colorWithRed:rd green:gr blue:bl alpha:1.0]];
 

J'espère que cela t'aides.....

2voto

gerry3 Points 15696

Utilisez initWithRed: green: blue: alpha: ou colorWithRed: green: blue: alpha:.

Par exemple:

 // create new autoreleased UIColor object named "myColor"
UIColor *myColor = [UIColor colorWithRed:0.5f green:0.5f blue:0.5f alpha:1.0f];

// create new retained UIColor object named "myColor2"
UIColor *myColor2 = [[UIColor alloc] initWithRed:0.5f green:0.5f blue:0.5f alpha:1.0f];
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X