web-dev-qa-db-ja.com

プリセット以外のカスタムUIColorを作成するにはどうすればよいですか?

UIColorsであり、UIColor blackColorや他の色と同じように使用できる独自のRGBカラーを作成したい。

36
Jab

カテゴリを使用して、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];

このメソッドを実装してランダムな色を取得することもできます。お役に立てれば。

56
EEE

アプリのいくつかの場所で使用するためにいくつかのカスタム色を定義する必要がありましたが、色はそのアプリに固有です。カテゴリを使用することを考えましたが、毎回含める追加のファイルを用意したくありませんでした。そのため、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];

これが他の誰かの役に立つことを願っています。

26
James

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

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

除算で浮動小数点値を使用する限り、何もキャストする必要はありません。必ず浮動小数点値を使用してください。例えば: 33 / 255 = 0。どちらが黒くなるでしょう。

8
M.Arsalan

色を作成する方法はいくつかあります。

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

お役に立てれば.....

7
iPhone Guy

Swiftの場合:

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

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