2016-04-21 20 views
1
sender.setBackgroundImage(imageArray[index], forState: .Normal) 

sleep(2)   // wait before you flip back over 

sender.setBackgroundImage(cardBack, forState: .Normal) 

睡眠似乎阻止圖像完成其負載。我如何等待setBackgroundImage完成?在Swift中,如何更改按鈕上的圖像,並在用戶看到原始圖像(即翻過卡片)後將其更改回來?

+1

你*永遠*等待。您可以使用*信息*。例如,以「回調」爲例 - UIAnimation有一些有趣的功能。 – Moritz

+0

爲什麼不使用閉包? – iMuzahid

+0

但上面的代碼在回調中。在回調被調用之前,CardBack顯示爲BackgroundImage。我應該顯示UIAnimation的正面和背面圖像?你可以在按鈕上使用動畫嗎? – DumbBlonde

回答

0
sender.setBackgroundImage(imageArray[index], forState: .Normal) 
sender.enabled = false; 

let delay_time = dispatch_time(dispatch_time_t(DISPATCH_TIME_NOW), 2 * Int64(NSEC_PER_SEC)) 
dispatch_after(delay_time, dispatch_get_main_queue()) { 
    sender.setBackgroundImage(cardBack, forState: .Normal) 
    sender.enabled = true; 
} 

編輯:禁用按鈕它示出了圖像的同時。

+0

謝謝。這工作,我瞭解了關閉。但爲什麼圖像有些透明(或者可能亮度增加)? – DumbBlonde