繁体   English   中英

Swift-如何隐藏标签,然后在按下按钮后使其永久显示?

[英]Swift - How to hide a label then after a button is pressed make it show forever?

我试图隐藏标签开始,然后在按下按钮后使标签永久显示,即使您注销/重新启动应用程序也是如此。 现在,它在我单击按钮后显示,但在我注销/重新启动后变为隐藏状态。 这是我的代码:

override func awakeFromNib() {
    super.awakeFromNib()
    // Initialization code
    hidePercent()
}

var didTapOptionsButtonForCell: ((YourPollsCell) -> Void)?

override func setSelected(_ selected: Bool, animated: Bool) {
    super.setSelected(selected, animated: animated)

    // Configure the view for the selected state

    let percentColor = UIColor(red: 115/255, green: 21/255, blue: 54/255, alpha: 1.0).cgColor
    pollText1Percent.layer.borderColor = percentColor
    pollText1Percent.layer.borderWidth = 2
    pollText2Percent.layer.borderColor = percentColor
    pollText2Percent.layer.borderWidth = 2
}

func hidePercent() {
    pollText1Percent.isHidden = true
    pollText2Percent.isHidden = true
}

@IBAction func reportButtonTapped(_ sender: UIButton) {
    didTapOptionsButtonForCell?(self)
}

@IBAction func pollText1ButtonTapped(_ sender: UIButton) {
    delegate?.didTapVoteButton(sender, pollNum: 1, on: self)

    pollText1Percent.isHidden = false
    pollText2Percent.isHidden = false
}

@IBAction func pollText2ButtonTapped(_ sender: UIButton) {
    delegate?.didTapVoteButton(sender, pollNum: 2, on: self)

    pollText1Percent.isHidden = false
    pollText2Percent.isHidden = false
}

您可以在点击按钮时向UserDefaults添加一个值。

UserDefaults.standard.set(value: true, forKey: "specialButtonWasTapped")

然后在启动应用程序时在控制器中检查此值并设置isHidden属性。

if let wasTapped = UserDefaults.standard.value(forKey: "specialButtonWasTapped") {
    specialLabel.isHidden = !wasTapped    // false
}
else {
    specialLabel.isHidden = true
}

还是整理一下这个主意

UserDefaults.standard.set(value: false, forKey: "labelShouldBeHidden")

然后,您可以使用nil合并运算符设置isHidden属性

specialLabel.isHidden = (UserDefaults.standard.value(forKey: "labelShouldBeHidden") as? Bool) ?? true

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM