48

プロジェクトで使用したいのですが、標準セット ( 、など)以外NSAttributedStringの色を設定しようとすると、これらの文字が白色で表示されます。これがこのコードの私の行です。redColorblackColorgreenColorUILabel

[attributedString addAttribute:NSForegroundColorAttributeName
                         value:[UIColor colorWithRed:66
                                               green:79
                                                blue:91
                                               alpha:1]
                         range:NSMakeRange(0, attributedString.length)];

Core Image フレームワークから色を作成しようとしましCIColorたが、同じ結果が表示されました。正しい方法で実行するには、コードの何を変更する必要がありますか?

みんな、答えてくれてありがとう!

4

5 に答える 5

118

値が正しくありません。各色の値を 255.0 で割る必要があります。

[UIColor colorWithRed:66.0f/255.0f
                green:79.0f/255.0f
                 blue:91.0f/255.0f
                alpha:1.0f];

ドキュメントの状態:

+ (UIColor *)colorWithRed:(CGFloat)red
                    green:(CGFloat)green
                     blue:(CGFloat)blue
                    alpha:(CGFloat)alpha

パラメーター

red 0.0 ~ 1.0 の値として指定された、カラー オブジェクトの赤のコンポーネント。

green color オブジェクトの緑の成分で、0.0 から 1.0 の値として指定されます。

blue 0.0 から 1.0 までの値として指定された、カラー オブジェクトの青のコンポーネント。

alpha 0.0 ~ 1.0 の値として指定された、カラー オブジェクトの不透明度の値。

ここを参照してください。

于 2012-11-04T23:50:58.103 に答える
5

UIColor255 までの整数ではなく、0 から 1.0 までの範囲を使用します。これを試してください:

// create color
UIColor *color = [UIColor colorWithRed:66/255.0
                                 green:79/255.0
                                  blue:91/255.0
                                 alpha:1];

// use in attributed string
[attributedString addAttribute:NSForegroundColorAttributeName
                         value:color
                         range:NSMakeRange(0, attributedString.length)];
于 2012-11-04T23:51:33.507 に答える
4

コードを試してください

[attributedString addAttribute:NSForegroundColorAttributeName value:[UIColor colorWithRed:77.0/255.0f green:104.0/255.0f blue:159.0/255.0f alpha:1.0] range:NSMakeRange(0, attributedString.length)];

お気に入り

Label.textColor=[UIColor colorWithRed:77.0/255.0f green:104.0/255.0f blue:159.0/255.0f alpha:1.0];  

UIColor の RGB コンポーネントは、最大 255 ではなく、0 から 1 の間でスケーリングされます。

于 2012-11-07T16:01:24.357 に答える
3

@Jaswanth Kumar が尋ねたので、LSwift のバージョンSwiftは次のとおりです。

extension UIColor {
    convenience init(rgb:UInt, alpha:CGFloat = 1.0) {
        self.init(
            red: CGFloat((rgb & 0xFF0000) >> 16) / 255.0,
            green: CGFloat((rgb & 0x00FF00) >> 8) / 255.0,
            blue: CGFloat(rgb & 0x0000FF) / 255.0,
            alpha: CGFloat(alpha)
        )
    }
}

使用法:let color = UIColor(rgb: 0x112233)

于 2016-07-06T06:20:19.707 に答える