Основной пример таймера iPhone

Хорошо, я искал онлайн и даже посмотрел в нескольких книгах для ответа, потому что я не могу понять документацию яблока для NSTimer. Я пытаюсь реализовать 2 таймера на том же представлении, что у каждого есть 3 кнопки (ЗАПУСТИТЕ - ОСТАНОВКА - СБРОС).

Новичок рассчитывает по сравнению с 2 минутами и затем подает звуковой сигнал.

Второй таймер подсчитывает с 0:00 неограниченно долго.

Я предполагаю, что весь код будет написан в методах позади 3 различных кнопок, но я полностью потерян, пытаясь прочитать документацию яблока. Любая справка значительно ценилась бы.

24
задан startuprob 14 June 2010 в 22:00
поделиться

1 ответ

По сути, вам нужно событие, которое запускается каждую 1 секунду или, возможно, с интервалом в 1/10 секунды, и вы обновите свой пользовательский интерфейс, когда сработает таймер.

Следующий код создаст таймер и добавит его в цикл выполнения. Сохраните таймер где-нибудь, чтобы вы могли убить его при необходимости.


- (NSTimer*)createTimer {

    // create timer on run loop
    return [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(timerTicked:) userInfo:nil repeats:YES];
}

Теперь напишите обработчик для тика таймера:

- (void)timerTicked:(NSTimer*)timer {

    // decrement timer 1 … this is your UI, tick down and redraw
    [myStopwatch tickDown];
    [myStopwatch.view setNeedsDisplay]; 

    // increment timer 2 … bump time and redraw in UI
    …
}

Если пользователь нажимает кнопку, вы можете сбросить счетчики или запустить или остановить отсчет. Чтобы завершить таймер, отправьте сообщение о недействительности:


- (void)actionStop:(id)sender {

    // stop the timer
    [myTimer invalidate];
}

Надеюсь, это поможет вам.

35
ответ дан 28 November 2019 в 23:23
поделиться