Добавление таймера для подсчета времени нажатия кнопки UIB на iPhone - PullRequest
2 голосов
/ 29 июня 2011

Как я могу добавить таймер, чтобы определить, сколько раз была нажата кнопка UIB на iPhone?

Спасибо

Ответы [ 3 ]

4 голосов
/ 29 июня 2011

Объявите buttonPressedStartTime как CFTimeInterval в вашем файле .h.

Когда кнопка нажата, сохраните текущее время:

buttonPressedStartTime = CFAbsoluteTimeGetCurrent();    

Когда пользователь поднимает палец,

float deltaTimeInSeconds = CFAbsoluteTimeGetCurrent() - buttonPressedStartTime;
1 голос
/ 29 июня 2011

Попробуйте это:

// somewhere in interface
NSDate *_startDate;


- (IBAction)buttonDown:(id)sender {
    _startDate = [[NSDate date] retain];
}


- (IBAction)buttonUp:(id)sender {
    NSTimeInterval pressedForInSeconds = [[NSDate date] timeIntervalSince1970] - [startDate timeIntervalSince1970];
    NSLog(@"button was pressed for: %d seconds", pressedForInSeconds);
    [_startDate release];
}

Затем подключите действие buttonDown: к розетке «Прикоснитесь внутрь», а buttonUp: к розетке «Подправьте внутрь» или «Подправьте снаружи» на вкладке подключения кнопок в Интерфейсном Разработчике.

1 голос
/ 29 июня 2011
 - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
      //Check here for touch is in your button frame than add
     [self performSelector:@selector(judgeLongPresstime) withObject:nil afterDelay:YourDelayTimeCheck];
 }

 - (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
     [NSObject cancelPreviousPerformRequestWithTarget:self];
 }

 -(void)judgeLongPresstime
 {
      //Add timer here and get time of increaseing.
 }
...