ios 除了预设的 UIColor 之外,如何制作自己的自定义 UIColor?

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/1956587/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-30 16:43:04  来源:igfitidea点击:

How do I make my own custom UIColor's other than the preset ones?

iosiphoneuicolor

提问by Jab

I want to make my own RGB colors that are UIColorsand that I could use just like UIColor blackColoror any other.

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

回答by EEE

You can write your own method for UIColor class using categories.

您可以使用类别为 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];
}

By this way, you create a new color and now you can call it like

通过这种方式,您创建了一种新颜色,现在您可以将其命名为

[UIColor MyColor];

You can also implement this method to obtain random color. Hope this helps.

您也可以实现此方法来获取随机颜色。希望这可以帮助。

回答by James

I needed to define a couple of custom colors for use in several places in an app - but the colours are specific to that app. I thought about using categories, but didn't want to have extra files to include every time. I've therefore created a couple of static methods in my App delegate.

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

In MyAppDelegate.h

在 MyAppDelegate.h 中

+ (UIColor*)myColor1;

In MyAppDelegate.m

在 MyAppDelegate.m 中

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

I have a method per color, or you could do a single method and add a parameter.

我对每种颜色都有一个方法,或者您可以执行一个方法并添加一个参数。

I can then use it anywhere in the app like this:

然后我可以在应用程序的任何地方使用它,如下所示:

myView.backgroundColor = [MyAppDelegate myColor1];

I hope this helps someone else.

我希望这对其他人有帮助。

回答by Suragch

Swift 3

斯威夫特 3

Creating a Swift extension allows you to define your own custom colors and use them just like the built in colors.

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

UIColor+CustomColor.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)
    }
}

Usage:

用法:

view.backgroundColor = UIColor.customGreen

enter image description here

在此处输入图片说明

回答by M.Arsalan

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

As long as you use a floating point value in your division you don't have to cast anything. Make sure you use floating point values. For example: 33 / 255 = 0. Which will become black.

只要您在除法中使用浮点值,您就不必进行任何转换。确保使用浮点值。例如:33 / 255 = 0。哪个会变黑。

回答by iPhone Guy

There are a couple of ways to create a color.

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

I prefer to use the RGB method. If you use the RGB values, divide them by 255 (I do not remember why, but I know you need to do it).

我更喜欢使用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]];

Hope this helps.....

希望这可以帮助.....

回答by ovatsug25

For Swift:

对于斯威夫特:

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

回答by gerry3

Use initWithRed:green:blue:alpha:or colorWithRed:green:blue:alpha:.

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

For example:

例如:

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