【问题标题】:Swift - How to hide a label then after a button is pressed make it show forever?Swift - 如何在按下按钮后隐藏标签使其永远显示?
【发布时间】:2017-08-10 03:11:37
【问题描述】:

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

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
}

【问题讨论】:

    标签: swift uibutton uilabel


    【解决方案1】:

    您可以在点击按钮时向 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-07
      • 2023-03-09
      相关资源
      最近更新 更多