锁定按钮直到第二天

时间:2018-08-08 19:25:36

标签: swift uibutton

反正还有锁定按钮直到第二天?例如,我的应用程序具有按钮形式的优惠券,并且当您单击按钮“ 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)

1 个答案:

答案 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()