16進文字列からUIColorを作成するにはどうすればいいですか? 質問する

16進文字列からUIColorを作成するにはどうすればいいですか? 質問する

などの16 進UIColor文字列形式からを作成するにはどうすればよいですか?#00FF00

ベストアンサー1

これを実現する最も簡単な方法はマクロを使うことだと分かりました。マクロをヘッダーに含めるだけで、プロジェクト全体で利用できるようになります。

#define UIColorFromRGB(rgbValue) [UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 green:((float)((rgbValue & 0xFF00) >> 8))/255.0 blue:((float)(rgbValue & 0xFF))/255.0 alpha:1.0]

16進数値を持つuicolorマクロ

このコードのフォーマットされたバージョン:

#define UIColorFromRGB(rgbValue) \
[UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 \
                green:((float)((rgbValue & 0x00FF00) >>  8))/255.0 \
                 blue:((float)((rgbValue & 0x0000FF) >>  0))/255.0 \
                alpha:1.0]

使用法:

label.textColor = UIColorFromRGB(0xBC1128);

迅速:

static func UIColorFromRGB(_ rgbValue: Int) -> UIColor! {
    return UIColor(
        red: CGFloat((Float((rgbValue & 0xff0000) >> 16)) / 255.0),
        green: CGFloat((Float((rgbValue & 0x00ff00) >> 8)) / 255.0),
        blue: CGFloat((Float((rgbValue & 0x0000ff) >> 0)) / 255.0),
        alpha: 1.0)
}

おすすめ記事