2012-09-13 32 views

回答

6

使用此代碼:

double delayInSeconds = 2.0; 
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, delayInSeconds * NSEC_PER_SEC); 
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){ 
    button.enabled = NO; 
}); 

編輯:如果您想先禁用按鈕,並執行一些代碼後面,這樣做:

button.enabled = NO; 
double delayInSeconds = 2.0; 
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, delayInSeconds * NSEC_PER_SEC); 
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){ 
    //this will be executed after 2 seconds 
}); 
+0

嗯,看起來不錯,但它不會做任何事情:( – TomasJ

+0

它不會做你最初要求我測試了它,它工作得很好。然而,現在我。我想編輯我的答案,爲它提供一個代碼 – Adam

+0

如果你想在時間間隔後重新啓用遊覽按鈕,只需啓用它就像這樣:'' button.enabled = YES;'執行完你的代碼後 – Adam

1

可以使用

[NSTimer scheduledTimerWithTimeInterval:2 target:self selector:@selector(setButtonEnabled) userInfo:nil repeats:NO]; 

-(void)setButtonEnabled{ 
    [myButton setEnabled:YES] 
} 

將按鈕設置爲隱藏後

+0

我只想讓它禁用不可見,我需要一段時間間隔的代碼才能寫出第一個代碼,這樣它就會被禁用 – TomasJ

+0

編輯m y source將其設置爲啓用 – Casabian

0

感謝@Adam。

對於雨燕3.0:

button.isEnabled = false 
DispatchQueue.main.asyncAfter(deadline: .now() + .milliseconds(2000)) { 
     btnCheckout.isEnabled = true 
}