如何使用用户默认值永久存储数据在xCode Swift中用于切换按钮

时间:2018-03-22 19:06:26

标签: ios swift xcode

如何使用userdefaults保存切换按钮的状态?这是代码,请帮帮我。

import UIKit


class LawFigure: UIViewController {

//Outlets:
@IBOutlet weak var likeButton: UIButton!
//Variables:

var isButtonOn = false

override func viewDidLoad() {
    super.viewDidLoad()
      customiseUI()

}

func customiseUI() {

    likeButton.layer.borderWidth = 3.0
    likeButton.layer.borderColor = UIColor(red: 0/255, green: 166/255, blue: 221/255, alpha: 1.0).cgColor
    likeButton.layer.cornerRadius = 20.0
    likeButton.clipsToBounds = true

}
@IBAction func followActionPressed(_ sender: Any) {
   self.activateButton(bool: !isButtonOn)
}


    func activateButton(bool: Bool) {

    isButtonOn = bool

    likeButton.backgroundColor = bool ? UIColor(red: 0/255, green: 166/255, blue: 221/255, alpha: 1.0) : .clear
    likeButton.setTitle(bool ? "unlike": "like", for: .normal)
    likeButton.setTitleColor(bool ? .white : UIColor(red: 0/255, green: 166/255, blue: 221/255, alpha: 1.0), for: .normal)

}


}

2 个答案:

答案 0 :(得分:0)

您可以尝试每次打开应用

likeButton.isEnabled = !(UserDefaults.standard.bool(forKey:"IsBtnEnabled"))

每当点击按钮保存

UserDefaults.standard.set(state, forKey: "IsBtnEnabled")

答案 1 :(得分:0)

var isButtonOn = UserDefaults.standard.bool(forKey: "isButtonOn")

override func viewDidLoad() {
   super.viewDidLoad()
   activateButton(bool: isButtonOn)
   customiseUI()
}

func activateButton(bool: Bool) {

   isButtonOn = bool
   UserDefaults.standard.set(isButtonOn, forKey: "isButtonOn")
   UserDefaults.standard.synchronize()


   likeButton.backgroundColor = bool ? UIColor(red: 0/255, green: 166/255, blue: 221/255, alpha: 1.0) : .clear
   likeButton.setTitle(bool ? "unlike": "like", for: .normal)
   likeButton.setTitleColor(bool ? .white : UIColor(red: 0/255, green: 166/255, blue: 221/255, alpha: 1.0), for: .normal)

}