プロジェクトでNSAttributedString
を使用したいのですが、標準セット(redColor
、blackColor
、greenColor
など)UILabel
は、これらの文字を白色で表示します。このコードの私の行はここにあります。
[attributedString addAttribute:NSForegroundColorAttributeName
value:[UIColor colorWithRed:66
green:79
blue:91
alpha:1]
range:NSMakeRange(0, attributedString.length)];
Core ImageフレームワークのCIColor
で色を作ろうとしましたが、同じ結果が示されました。正しい方法で実行するには、コードを何に変更すればよいですか?
回答をお待ちしております!
値が正しくありません。各カラー値を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の値として指定します。
green0.0〜1.0の値として指定される、カラーオブジェクトの緑のコンポーネント。
blue0.0から1.0の値として指定された、カラーオブジェクトの青色成分。
alpha0.0〜1.0の値として指定された、カラーオブジェクトの不透明度の値。
私のお気に入りのマクロの1つ、なしのプロジェクトなし:
#define RGB(r, g, b) [UIColor colorWithRed:(float)r / 255.0 green:(float)g / 255.0 blue:(float)b / 255.0 alpha:1.0]
#define RGBA(r, g, b, a) [UIColor colorWithRed:(float)r / 255.0 green:(float)g / 255.0 blue:(float)b / 255.0 alpha:a]
Likeの使用:
[attributedString addAttribute:NSForegroundColorAttributeName
value:RGB(66, 79, 91)
range:NSMakeRange(0, attributedString.length)];
UIColor
は0〜1.0の範囲を使用し、255までの整数ではありません。これを試してください。
// 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)];
コードを試してください
[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の間でスケーリングされます。
@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)