64

Photoshop の色の RGB 値を使用しており、値は Xcode で同じ値を使用しています。Color-R-160、G-97、B-5... Photoshop の色は黄色がかっていますが、Xcode で使用すると

myLabel.textColor = [UIColor colorWithRed:160 green:97 blue:5 alpha:1] ;

色が白っぽく見える。

この違いはなぜ起こるのでしょうか?

4

5 に答える 5

200

Objective-C

0 から 1.0 までの値を指定する必要があります。したがって、RGB 値を 255 で割ります。

myLabel.textColor= [UIColor colorWithRed:(160/255.0) green:(97/255.0) blue:(5/255.0) alpha:1] ;

アップデート:

このマクロも使えます

#define Rgb2UIColor(r, g, b)  [UIColor colorWithRed:((r) / 255.0) green:((g) / 255.0) blue:((b) / 255.0) alpha:1.0]

そして、このようにクラスのいずれかを呼び出すことができます

 myLabel.textColor = Rgb2UIColor(160, 97, 5);

迅速

これは通常の色シナックスです

myLabel.textColor = UIColor(red: (160/255.0), green: (97/255.0), blue: (5/255.0), alpha: 1.0) 
//The values should be between 0 to 1

Swift はマクロにあまり友好的ではない

複雑なマクロは C と Objective-C で使用されますが、Swift には対応するものはありません。複雑なマクロは、定数を定義しないマクロであり、括弧で囲まれた関数のようなマクロが含まれます。C および Objective-C で複雑なマクロを使用して、型チェックの制約を回避したり、大量のボイラープレート コードの再入力を回避したりします。ただし、マクロを使用すると、デバッグやリファクタリングが困難になる場合があります。Swift では、関数とジェネリックを使用して、妥協することなく同じ結果を得ることができます。したがって、C および Objective-C ソース ファイルにある複雑なマクロは、Swift コードで使用できません。

したがって、これには拡張機能を使用します

extension UIColor {
    convenience init(_ r: Double,_ g: Double,_ b: Double,_ a: Double) {
        self.init(red: r/255, green: g/255, blue: b/255, alpha: a)
    }
}

次のように使用できます

myLabel.textColor = UIColor(160.0, 97.0, 5.0, 1.0)
于 2012-04-30T05:47:12.300 に答える
25

あなたはすでに正しい答えを得ていますが、UIColor私のようなインターフェースが嫌いな場合は、これを行うことができます:

#import "UIColor+Helper.h"
// ...
myLabel.textColor = [UIColor colorWithRGBA:0xA06105FF];

UIColor + Helper.h:

#import <UIKit/UIKit.h>

@interface UIColor (Helper)
+ (UIColor *)colorWithRGBA:(NSUInteger)color;
@end

UIColor + Helper.m:

#import "UIColor+Helper.h"

@implementation UIColor (Helper)

+ (UIColor *)colorWithRGBA:(NSUInteger)color
{
    return [UIColor colorWithRed:((color >> 24) & 0xFF) / 255.0f
                           green:((color >> 16) & 0xFF) / 255.0f
                            blue:((color >> 8) & 0xFF) / 255.0f
                           alpha:((color) & 0xFF) / 255.0f];
}

@end
于 2012-04-30T06:04:05.347 に答える
5

Yeah.ios は、0 から 1 までの範囲の RGB valur のみをサポートします。その近い範囲 [0,1]

于 2012-04-30T05:57:43.183 に答える
5

Interface Builder のカラー ピッカー プラグイン

IB でうまく動作する Panic の素敵なカラー ピッカーがあります: http://panic.com/~wade/picker/

Xcode プラグイン

これは、色を選択するための GUI を提供します: http://www.youtube.com/watch?v=eblRfDQM0Go

Objective-C

UIColor *color = [UIColor colorWithRed:(160/255.0) green:(97/255.0) blue:(5/255.0) alpha:1.0];

迅速

let color = UIColor(red: 160/255, green: 97/255, blue: 5/255, alpha: 1.0)

ポッドとライブラリ

という名前の素敵なポッドがありますMPColorTools: https://github.com/marzapower/MPColorTools

于 2014-01-10T15:02:34.260 に答える
0

値はイメージのビットによって決まります。8ビット 0~255

16ビット...ばかげた数..約0から65,000。

32 ビットは 0 から 1 です

私は32ビット画像で.004を使用しています...これは、255を掛けると結果として1.02になります

于 2014-01-10T14:33:04.453 に答える