web-dev-qa-db-fra.com

Comment créer mon propre UIColor personnalisé autre 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 tout autre.

36
Jab

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 une couleur aléatoire. J'espère que cela t'aides.

56
EEE

J'avais besoin de définir quelques couleurs personnalisées à utiliser à plusieurs endroits dans une application - mais les couleurs sont spécifiques à cette application. J'ai pensé à utiliser des catégories, mais je ne voulais pas avoir de fichiers supplémentaires à inclure à chaque fois. J'ai donc créé quelques 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 pouvez faire une seule méthode et ajouter un paramètre.

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

myView.backgroundColor = [MyAppDelegate myColor1];

J'espère que ça aidera quelqu'un d'autre.

26
James

Swift 3

La création d'une extension Swift vous permet de définir vos propres couleurs personnalisées et de les utiliser comme les couleurs intégrées.

UIColor + CustomColor.Swift

import UIKit

extension UIColor {

    class var customGreen: UIColor {
        let darkGreen = 0x008110
        return UIColor.rgb(fromHex: darkGreen)
    }

    class func rgb(fromHex: Int) -> UIColor {

        let red =   CGFloat((fromHex & 0xFF0000) >> 16) / 0xFF
        let green = CGFloat((fromHex & 0x00FF00) >> 8) / 0xFF
        let blue =  CGFloat(fromHex & 0x0000FF) / 0xFF
        let alpha = CGFloat(1.0)

        return UIColor(red: red, green: green, blue: blue, alpha: alpha)
    }
}

Utilisation:

view.backgroundColor = UIColor.customGreen

enter image description here

9
Suragch
[UIColor colorWithRed:51.0 / 255.0, green:0.0, blue:153.0 / 255.0];

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

8
M.Arsalan

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

Je préfère utiliser la méthode RGB. 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.....

7
iPhone Guy

Pour Swift:

let swiftColor = UIColor(red: 1, green: 165/255, blue: 233, alpha: 1)
3
ovatsug25

Utilisez initWithRed: vert: bleu: alpha: ou colorWithRed: vert: bleu: 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];
2
gerry3