ランダムな時間(0〜10秒)後にタイマーを開始するボタンを実装しようとしています。タイマーの実行中は、経過時間を示すために 0.005 秒ごとにラベルを更新する必要があります。私が抱えている問題は2倍です:
ラベルを 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) アプリがフリーズする「遅延」期間を修正する方法
...この時点で私はかなり困惑しているので、それは本当に役に立ちます。前もって感謝します。