2017-05-15 13 views
0

「テーマ」というユーザーごとにMySQLデータベースに列があります。その変数に基づいて色を変更する方法を知りたいと思います。私が試したコードはここにありますが、うまくいきません。あなたがそのSwift 3どのように色を動的に変更するのですか?

class YourClassName{ var color2: UIColor? 
    func viewDidLoad() 
    { 
    super.viewDidLoad() 
    let theme = (user!["theme"] as! String?) ?? "" // dark 
    if theme == "dark" { 
     let color1 = UIColor(red: 93/255, green: 75/255, blue: 81/255, alpha: 1) 
     color2 = UIColor(red: 255/255, green: 251/255, blue: 246/255, alpha: 1) 
    } 
    // Set colors 
    fullName.textColor = color2 
    }} 
+0

私はif文の外でcolor2を定義するだけでうまくいくことに注意してください:let color2 = UIColor(赤:93/255、緑:75/255、青:81/255、アルファ:1) – Zach

+0

"テーマ "は、あなたがdicitonaryからそれを得るとき、持っていますか?あなたはバックグラウンドを持っていますか、格納されているdicitonary内には何ですか? – Lepidopteron

答えて

0

のようなウル方法は、あなたが内部の色の変数を定義しているif文

アップデートの範囲内でローカルカラー2を作っているので、

// First function 
override func viewDidLoad() { 
    super.viewDidLoad() 

    let theme = (user!["theme"] as! String?) ?? "" // dark 

    if theme == "dark" { 
     let color1 = UIColor(red: 93/255, green: 75/255, blue: 81/255, alpha: 1) 
     let color2 = UIColor(red: 255/255, green: 251/255, blue: 246/255, alpha: 1) 


    // Set colors 
    fullName.textColor = color2 

は}

0

ですif文の範囲がif文に限定されているため、if-Statementの中カッコの外側にはアクセスできません。

override func viewDidLoad() { 
    super.viewDidLoad() 

    let theme = (user!["theme"] as! String?) ?? "" // dark 
    let color1 : UIColor? 
    let color2 : UIColor? 

     if theme == "dark" { 
      color1 = UIColor(red: 93/255, green: 75/255, blue: 81/255, alpha: 1) 
      color2 = UIColor(red: 255/255, green: 251/255, blue: 246/255, alpha: 1) 
     } 

// Set colors 
fullName.textColor = color2 

上記のように、if文の外側にvaiablesを定義することでこれを使用できます。 お手伝い願います!

関連する問題