2017-09-25 46 views
-1

menuView必须具有每个人的默认颜色。但是,使用RGB滑块进行应用程序设置的任何人都可以更改menuView的颜色。 所以我想用黄色设置默认颜色,并设置滑块来改变颜色menuView。换色后,可以保存。使用默认颜色启动应用程序

import UIKit 

class ViewController: UIViewController { 

    let defaults = UserDefaults.standard 

    @IBOutlet weak var tableView: UITableView! 
    @IBOutlet weak var menuView: UIViewX! 

    var redval = Float() 
    var greenval = Float() 
    var blueval = Float() 


    @IBOutlet weak var NewMessage: UIButton! 
    @IBOutlet weak var Camera: UIButton! 
    @IBOutlet weak var NewPost: UIButton! 

    var tableData: [Model] = [] 

    override func viewDidLoad() { 
    super.viewDidLoad() 



    self.menuView.backgroundColor = UIColor(red: CGFloat(redval), green: CGFloat(greenval), blue: CGFloat(blueval), alpha: 0.45) 
    } 
} 

以字符串

self.menuView.backgroundColor = UIColor(red: CGFloat(redval), green: 
CGFloat(greenval), blue: CGFloat(blueval), alpha: 0.45) 

我可以通过滑块RGB与应用改变颜色,但现在我想先关税默认的颜色,这可能是变化的。

代码滑块变色

import UIKit 

class ViewSettings: UIViewController { 

@IBOutlet var redslider: UISlider! 
@IBOutlet var greenslider: UISlider! 
@IBOutlet var blueslider: UISlider! 

override func viewDidLoad() { 
    super.viewDidLoad() 

    // Do any additional setup after loading the view. 
} 

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    // Dispose of any resources that can be recreated. 
} 

@IBAction func change(_ sender: AnyObject) { 
    self.performSegue(withIdentifier: "ChangeColor", sender: self) 
} 

// MARK: - Navigation 

// In a storyboard-based application, you will often want to do a little preparation before navigation 
override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 
    if segue.identifier == "ChangeColor" { 
     let destanitaion = segue.destination as! ViewController 
     destanitaion.redval = redslider.value 
     destanitaion.blueval = blueslider.value 
     destanitaion.greenval = greenslider.value 
    } 
} 


} 
+1

直截了当地做到这一点是每一个红,绿,蓝值保存为'UserDefaults'中的'Double'。然后提取每个组件并重建“UIColor”。你也可以创建一个'UserDefaults'扩展名来使这个更清洁。 – Paolo

+0

你能举个例子吗?我想要的默认颜色是#colorLiteral(红色:0.9966391622,绿色:1,蓝色:0.2095825737,alpha:0.7946946448)/ *#f2f0f0 */@Paolo –

+0

UP @Paolo查看更新 –

回答

2

存储各颜色成分作为DoubleUserDefaults

// when saving 

defaults.set(redVal, forKey: "defaultColorRedValue") 
defaults.set(greenVal, forKey: "defaultColorGreenValue") 
defaults.set(blueVal, forKey: "defaultColorBlueValue") 

要提取的每个值:

override func viewDidLoad() { 
    super.viewDidLoad() 

    redVal = CGFloat(defaults.double(forKey: "defaultColorRedValue")) 
    greenVal = CGFloat(defaults.double(forKey: "defaultColorGreenValue")) 
    blueVal = CGFloat(defaults.double(forKey: "defaultColorBlueValue")) 

    self.menuView.backgroundColor = UIColor(red: redval, green: greenval, blue: blueval, alpha: 0.45) 
} 
0

- 用户的用户默认为设置应用程序终止后的RGB默认值,

你的滑块价值变动店

RGB

let defaults = UserDefaults.standard 
defaults.set(redval, forKey: “Red”) 
defaults.set(greenval, forKey: “green”) 
defaults.set(blueval, forKey: “blue”) 

上查看没有从用户的默认加​​载的get值

let red = defaults.float(forKey: "Red") 
let green = defaults.float(forKey: "green") 
let blue = defaults.float(forKey: "blue") 

self.menuView.backgroundColor = UIColor(red: CGFloat(red), green:CGFloat(green), blue: CGFloat(blue), alpha: 0.45) 
相关问题