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
}
}
}
直截了当地做到这一点是每一个红,绿,蓝值保存为'UserDefaults'中的'Double'。然后提取每个组件并重建“UIColor”。你也可以创建一个'UserDefaults'扩展名来使这个更清洁。 – Paolo
你能举个例子吗?我想要的默认颜色是#colorLiteral(红色:0.9966391622,绿色:1,蓝色:0.2095825737,alpha:0.7946946448)/ *#f2f0f0 */@Paolo –
UP @Paolo查看更新 –