反正还有锁定按钮直到第二天?例如,我的应用程序具有按钮形式的优惠券,并且当您单击按钮“ Coupon 1”时,它会切换为“ USED +当前日期”。我希望用户每个ViewController /页面每页只能使用2张优惠券,并且想知道一旦用户按下两张优惠券,是否有可能锁定其他优惠券,并且第二天解锁。我不希望按钮消失,只是希望它们被锁定。以下是我的一个按钮/优惠券的代码。如果在按2后实际上在其余按钮的角上出现了锁,那将是理想的选择。
var didClick:布尔=假
@IBAction func special1BTNpressed(_ sender: UIButton) {
if !didClick {
didClick = true
let date = Date()
let formatter = DateFormatter()
formatter.dateFormat = "MM/dd/yyyy"
let result = formatter.string(from: date)
sender.setTitle("USED " + result, for: .normal)
答案 0 :(得分:2)
您可以存储操作日期,然后将其与今天进行比较
func canPerformActionForSpecialBTN() -> Bool {
let timeInterval = UserDefaults.standard.double(forKey: "ActionDateForSpecialBTN")
guard timeInterval.isNormal else { return true }
let date = Date(timeIntervalSince1970: timeInterval)
guard Calendar.current.isDateInToday(date) else { return true }
return false
}
func performSpecialBTNAction() {
guard canPerformActionForSpecialBTN() else { return }
defer { UserDefaults.standard.set(Date().timeIntervalSince1970, forKey: "ActionDateForSpecialBTN") }
//implement action here
}
,也许可以在viewDidAppear
中启用或禁用按钮
button.isEnabled =!canPerformActionForSpecialBTN()