日当-ヒナタ- swift4 -7- UIColorをIntで扱う
はじめに
Androidアプリ日当-ヒナタ-のiOS版を作り始めたのでその経過を少しアップします。普段の仕事ではSWIFTを触らないのでとても新鮮な感じと少し不安なとこもあり。。。少し機能を削り、早めのストア公開を目指します。 picker系のコントロールが少し手こずります。Androidでは0xFFFFFFFFのような感じでARGBを指定しました。iOSというかSWIFTではエラーになるので、とりあえず負数を直接定義したのですが、他に方法がないのでしょうかね。。(符号あり(先頭ビット[1]でマイナス)+16進記述の整数リテラル)
機材
・Macbook air Xcode Version 10.1 Apple Swift version 4.2.1
・iphone5c テスト機
UIColorをIntで扱う。
保存する時は選択した色の数字をRealmへ保存してます。コンピュータ的には良いですが、コメントで16進書いとかないとわからなくなりますね ・・ あ、、それと、透明度が扱えないかも。。
--- --- --- --- let list: DictionaryLiteral = [ "ピーコック": -12134693, "ミカン": -18312, "バナナ": -272549, "バジル": -11421879, "セージ": -8722497, "ブルーベリー": -11238163, "ラベンダー": -5980676, "ブドウ": -2380289, "フラミンゴ": -30596, "グラファイト": -1973791 ] //使い方 UIColor.create(hex: -11421879) UIColor.create(hex: list[3].value) --- --- --- --- --- extension UIColor { static func create(hex: Int) -> UIColor { return UIColor( displayP3Red: CGFloat((hex & 0xFF0000) >> 16) / 255.0 , green: CGFloat((hex & 0xFF00) >> 8) / 255.0 , blue: CGFloat(hex & 0xFF) / 255.0 , alpha: 1.0 ) } } --- --- --- ---
参考:Androidの定義。
"ピーコック", 0xFF46D6DB "ミカン", 0xFFFFB878) "バナナ", 0xFFFBD75B "バジル", 0xFF51B749 "セージ", 0xFF7AE7BF "ブルーベリー", 0xFF5484ED "ラベンダー", 0xFFA4BDFC "ブドウ", 0xFFDBADFF "フラミンゴ", 0xFFFF887C "グラファイト", 0xFFE1E1E1
動作イメージ
ほぼほぼ、完成。。
なんとかリリースまで・・がんばりたい
ab39