我試圖實現一個按鈕,在隨機時間段(0-10s之間)後啓動一個定時器。計時器運行時,它應該每0.005秒更新一次標籤以顯示已經過了多長時間。我遇到的問題是2倍:等待隨機時間,然後開始更新UILabel(iPhone)中的流逝時間
我不知道如何讓標籤更新與經過的時間每0.005秒。
我無法讓應用程序在啓動計時器之前等待隨機時間。目前我正在使用
sleep(x)
,但它似乎會導致應用忽略if
語句中的所有其他代碼,並導致按鈕圖像凍結(即看起來像仍然點擊了它)。
這裏是我到目前爲止的代碼...
- (IBAction)buttonPressed:(id)sender
{
if ([buttonLabel.text isEqualToString:@"START"])
{
buttonLabel.text = @" "; // Clear the label
int startTime = arc4random() % 10; // Find the random period of time to wait
sleep(startTime); // Wait that period of time
startTime = CACurrentMediaTime(); // Set the start time
buttonLabel.text = @"STOP"; // Update the label
}
else
{
buttonLabel.text = @" ";
double stopTime = CACurrentMediaTime(); // Get the stop time
double timeTaken = stopTime - startTime; // Work out the period of time elapsed
}
}
如果任何人有..
A)任何建議,如何獲得標籤與經過時間更新。
或
B)如何修復凍結了應用
的「延遲」時期......因爲我在這一點上幾乎難倒這將是非常有益的。提前致謝。
sleep()阻止執行 – EricLeaf