Я давно не программировал в iOS, но мне просто интересно, сможет ли кто-нибудь помочь. У меня есть функция IBAction, и каждый раз, когда она нажата, увеличивается счетчик, поэтому я могу видеть, сколько раз он был нажат. Но я хочу добавить функциональность, поэтому, когда она нажата, я могу отображать время между каждым нажатием. Итак, если они нажимают кнопку, то появляется всплывающее окно. Затем они снова нажимают его и нажимают 2 нажатия кнопки, а также количество времени, которое они нажимали на него. Я не уверен, как реализовать это, потому что я не уверен, как найти время события. Есть отметка времени UIEvent, но я не совсем уверен, как ее использовать.Время между двумя событиями
0
A
ответ
3
Если вам не требуется высокая точность, это, вероятно, достаточно, чтобы получить текущее время, когда ваш метод IBAction называется в этом случае вы могли бы сделать что-то вроде этого:
- (IBAction) buttonAction: (id) inButton
{
NSDate *now = [NSDate date];
if (self.lastEventTime != nil) {
NSTimeInterval timeSinceLast = [now timeIntervalSinceDate: self.lastEventTime];
NSLog(@"time since last press: %f seconds", timeSinceLast);
}
self.lastEventTime = now;
}
Вот как это может выглядеть в Swift:
class SomeController: UIViewController {
var lastEventTime : NSDate?
@IBAction func buttonAction(inButton: AnyObject) {
let now = NSDate()
if let lastEventTime = self.lastEventTime {
let timeSinceLast = now.timeIntervalSinceDate(lastEventTime)
println("time since last press: \(timeSinceLast) seconds")
}
self.lastEventTime = now
}
}
-2
У вас может быть свойство NSDate, которое вы назначаете каждый раз, событие запускается. Затем вы всегда сравниваете разницу между свойством и текущим временем.
@property (nonatomic) NSDate *lastEventDate;
- (IBAction) clicked:(id)sender{
NSDate *now = [NSDate date];
NSTimeInterval differenceBetweenDatesInSeconds = [self.lastEventDate timeIntervalSinceDate:now];
//Do something with the interval (show it in the UI)
[self setLastEventDate:now];
}
Извините, я изо всех сил пытаюсь понять, что происходит в вашем коде. Где это будет соответствовать внутренним/внешним моим текущим функциям IBAction. (Я тоже работаю в Swift) – JamesDonnelly
Также, что такое LastEventTime? – JamesDonnelly
Извините, что забыл привести пример в Swift. Я обновил свой пример. Надеюсь, это более понятно. –