如何制作我自己的自定义UIColor而不是预设的?

时间:2009-12-24 03:58:30

标签: ios iphone uicolor

我想创建自己的UIColors RGB颜色,我可以使用UIColor blackColor或其他任何颜色。

7 个答案:

答案 0 :(得分:56)

您可以使用类别为UIColor类编写自己的方法。

#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];
}

通过这种方式,您可以创建一种新颜色,现在可以像

一样调用它
[UIColor MyColor];

您还可以实现此方法以获取随机颜色。 希望这会有所帮助。

答案 1 :(得分:27)

我需要定义一些自定义颜色,以便在应用中的多个位置使用 - 但颜色特定于该应用。我考虑过使用类别,但不希望每次都包含额外的文件。因此,我在App代理中创建了几个静态方法。

在MyAppDelegate.h中

+ (UIColor*)myColor1;

在MyAppDelegate.m中

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

我有每种颜色的方法,或者你可以做一个方法并添加一个参数。

然后我可以在应用程序的任何地方使用它:

myView.backgroundColor = [MyAppDelegate myColor1];

我希望这有助于其他人。

答案 2 :(得分:9)

Swift 3

创建Swift扩展允许您定义自己的自定义颜色,并像内置颜色一样使用它们。

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

<强>用法:

view.backgroundColor = UIColor.customGreen

enter image description here

答案 3 :(得分:8)

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

只要在分区中使用浮点值,就不必投射任何东西。确保使用浮点值。例如:33 / 255 = 0。哪个会变黑。

答案 4 :(得分:7)

有两种方法可以创建颜色。

我更喜欢使用RGB方法。如果你使用RGB值,将它们除以255(我不记得为什么,但我知道你需要这样做)。

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]];

希望这会有所帮助.....

答案 5 :(得分:3)

对于Swift:

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

答案 6 :(得分:2)

使用initWithRed:green:blue:alpha:colorWithRed:green:blue:alpha:

例如:

// 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];