質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

2回答

1568閲覧

StringからUIColorに変換したい

bignnerSwift

総合スコア20

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

1クリップ

投稿2019/08/27 11:43

編集2019/08/27 11:44

前提・実現したいこと

ColorPickerViewの勉強をしております。
やりたいことは以下です。

1、取得したcolorをStringにしてuserdefaultに保存。(別のビューに渡すため)
2、他のビューで、userdefaultに保存したcolorのStringを取り出してUIColorに戻したい
→ 2がうまくいきません。

コンソールでprintすると
「UIExtendedSRGBColorSpace 1 0.34895 0.297971 1」
という形式で表示されております。

この形式からUIColorに戻す方法がうまくいきません。
red blue green alphaの値を取得する方法はあるのでしょうか?

該当のソースコード

カラーピッカーからcolorを取得

swift

1func colorPickerViewController(colorPickerViewController: AMColorPickerViewController, didSelect color: UIColor) { 2 3 //userdefaultに保存 4 ud.set("(color)", forKey: "color") 5 print("文字色は:(color)") 6 7 }

保存したcolorをUIColorに戻して表示

swift

1textcolor = ud.object(forKey: "color") 2//!!ここの色の指定がわからない 3label.textColor = ・・・・・

参考サイトなどでもかまいません。
どなたかアドバイスいただけないでしょうか。

補足情報(FW/ツールのバージョンなど)

Swift 4.0

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

TakuyaAso

2019/08/27 13:51

別のビューに渡すだけならUDとか使わず値渡しすればいいだけかと。
guest

回答2

0

ベストアンサー

参考サイトでも構わないとのことですので、 StackOverflow の類似の質問をご紹介します。

投稿2019/08/27 13:50

thyda.eiqau

総合スコア2982

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

bignnerSwift

2019/08/27 22:28

おお!ありがとうございます!このような使い方を探しておりました。 調べ方があまかったですね・・・。 ありがとうございます!
thyda.eiqau

2019/08/28 00:52

「UIColor NSUserDefaults」でググったら上位3つ以内に出てきました、ということだけ申し添えておきます
guest

0

フツーのUIColorならRGBA取得して配列で保存/復元できます。

swift

1let color = UIColor(red: 0.123, green: 0.456, blue: 0.789, alpha: 1.0) 2print(color) 3//=> UIExtendedSRGBColorSpace 0.123 0.456 0.789 1 4 5var r: CGFloat = 0 6var g: CGFloat = 0 7var b: CGFloat = 0 8var a: CGFloat = 0 9if color.getRed(&r, green: &g, blue: &b, alpha: &a) { 10 UserDefaults.standard.set([r, g, b, a], forKey: "color") 11 let rgba = UserDefaults.standard.array(forKey: "color") as! [CGFloat] 12 let restoredColor = UIColor(red: rgba[0], green: rgba[1], blue: rgba[2], alpha: rgba[3]) 13 print(restoredColor) 14 //=> UIExtendedSRGBColorSpace 0.123 0.456 0.789 1 15 16} else { 17 print("could not convert") 18}

投稿2019/08/28 07:46

fuzzball

総合スコア16731

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問