首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

iOS 按鈕點擊後禁用 10 分鐘的實作方法

     編輯:程式設計綜合問答

需求

按鈕點擊後顯示不可用狀態(如換圖),並禁用 10 分鐘防止重複點擊。

實作步驟

  1. 點擊事件中先禁用按鈕:button.enabled = NO;
  2. 使用 performSelector:withObject:afterDelay: 延遲 10 分鐘(600 秒)重新啟用。

程式碼範例

- (IBAction)buttonTapped:(UIButton *)sender {
    sender.enabled = NO;
    [sender setBackgroundImage:[UIImage imageNamed:@"button_non_active.png"] forState:UIControlStateDisabled];
    [self performSelector:@selector(enableButton:) withObject:sender afterDelay:10.0 * 60.0];
}

- (void)enableButton:(UIButton *)sender {
    sender.enabled = YES;
    [sender setBackgroundImage:[UIImage imageNamed:@"button.png"] forState:UIControlStateNormal];
}

進階建議

  • 若 App 可能進入背景,建議儲存禁用截止時間戳至 UserDefaults,啟動時檢查並恢復狀態。
  • 使用 dispatch_after 替代 performSelector 更符合現代 GCD 風格。

GCD 版本

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(10 * 60 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
    sender.enabled = YES;
});
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved