*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)
}
}
どうやってアプリを作っていくのかがとても分かりやすいので初めてアプリを作る方はこちらの書籍ががおすすめです!
もし参考になったらボタンひとつ”いいね”をお願いします!!😉
コメント