【Swift】Textの色を変える方法

swift text colorSwift

*Swift5, Xcode ver 12.1

コードでTextの色をSystem color, RGB, カラーコードでの変更をまとめました。
ラベルやテキストの文字色の変更の時に参考にしてください

あれこれ試した結果、カラーコードを指定するやり方が一番個人的には楽です^^

スポンサーリンク

System colorを使って色を指定する

@IBOutlet weak var label: UILabel!
    
    override func viewDidLoad() {
        super.viewDidLoad()
     // white
     label.textColor = UIColor.white
     // black
     label.textColor = UIColor.black
     // red
         label.textColor = UIColor.red
     //Available on iOS 13 and above
     label.textColor = UIColor.systemGray2
        label.textColor = UIColor.secondaryLabel
    }

StoryboardからText colorを選ぶと他の色の一覧が出てきます

RGB(0~1.0)で色を指定する

SwiftのUIcolorのRGB値は255段階ではなく0~1.0までの値で指定します
viewDidLoadの中に以下のコードを書いてください

// rgba = UIColor( 赤, 緑, 青, 透明度)
// alphaを0.0にするとTextは透明になる。
let rgba = UIColor(red: 0.1, green: 0.7, blue: 0.9, alpha: 1.0)
label.textColor = rgba

RGB(0~255)で色を指定する

0~255のRGB値が分かっているのに前述のRGB(0~1.0)だといちいち計算したり、調整がめんどくさいのであまり使いたくない。。。
そんな時は分かっているRGBの値を255で割ってあげるコードを使うとそのままのRGBの値が使えて便利。viewDidLoadの中に以下のコードを書いてください

スポンサーリンク
// rgba = UIColor( 赤, 緑, 青, 透明度)
// alphaを0.0にするとTextは透明になる。
let rgba = UIColor(red: 129/255, green: 216/255, blue: 208/255, alpha: 1.0)
explain.textColor = rgba

カラーコードで色を指定する

でもやっぱりカラーコードで指定した方が楽なので下記のエクステンションを用意します。
エクステンションを1度作っておくといろんな場面で使いまわせるのでかなり便利なのでおすすめです。

新しくSwiftFileを作ります

File → New → File…→ Swift Fileを選択し、Save asにUIColorHexなど分かり易い適当な名前を入力してください → 保存先を決めてCreate
作ったファイルに下記のコードを貼り付ける。

import UIKit

extension UIColor {
    convenience init(hex: String, alpha: CGFloat = 1.0) {
        let v = Int("000000" + hex, radix: 16) ?? 0
        let r = CGFloat(v / Int(powf(256, 2)) % 256) / 255
        let g = CGFloat(v / Int(powf(256, 1)) % 256) / 255
        let b = CGFloat(v / Int(powf(256, 0)) % 256) / 255
        self.init(red: r, green: g, blue: b, alpha: min(max(alpha, 0), 1))
    }
}

使いたいクラスのviewDidLoadの中に下記を記述
UIColorを呼び出してhexに#無しのカラーコードを入れて使用する

label.textColor = UIColor(hex: "333333")
label.textColor = UIColor(hex: "333333", alpha: 1.0)

カスタムクラス内でカラーコードを指定して使う場合はこちら

import UIKit

class CustomLabelText: UILabel {

    override init(frame: CGRect) {
        super.init(frame: frame)
        customText()
      }
      required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        customText()
      }
      
      override func prepareForInterfaceBuilder() {
        super.prepareForInterfaceBuilder()
        customText()
      }
      
      private func customText() {
        textColor = UIColor(hex: "333333", alpha: 1.0)
        font = UIFont(name: "Helvetica Neue", size: 17)
      }
}

どうやってアプリを作っていくのかがとても分かりやすいので初めてアプリを作る方はこちらの書籍ががおすすめです!

もし参考になったらボタンひとつ”いいね”をお願いします!!😉

コメント

タイトルとURLをコピーしました