iPhone: Algılama kullanıcı etkinlik son ekran beri/boş zaman dokunmatik
Kimseye eğer kullanıcı belirli bir süre için ekrana dokundu değilse, belirli bir eylemi, bir özelliği hayata geçirdi? Bunu yapmanın en iyi yolunu bulmaya çalışıyorum.
UİApplication biraz ile ilgili bu yöntem var:
[UIApplication sharedApplication].idleTimerDisabled;
Eğer bunun yerine böyle bir şey olsaydı iyi olurdu:
NSTimeInterval timeElapsed = [UIApplication sharedApplication].idleTimeElapsed;
Sonra bir zamanlayıcı ayarlamak ve düzenli olarak bu değeri kontrol edin, ve bir eşiği aştığında bir eylemde olabilir.
Umarım aradığım şeyi açıklıyor. Herkes bu sorunu çoktan ele, ya da bunu nasıl yapabileceğimi üzerinde herhangi bir düşünce var mı? Teşekkürler.
CEVAP
İşte aradığım vardı cevabı:
Uygulama temsilci alt senin UİApplication. Uygulama dosyasında, sendEvent geçersiz: böyle yöntem:
- (void)sendEvent:(UIEvent *)event {
[super sendEvent:event];
// Only want to reset the timer on a Began touch or an Ended touch, to reduce the number of timer resets.
NSSet *allTouches = [event allTouches];
if ([allTouches count] > 0) {
// allTouches count only ever seems to be 1, so anyObject works here.
UITouchPhase phase = ((UITouch *)[allTouches anyObject]).phase;
if (phase == UITouchPhaseBegan || phase == UITouchPhaseEnded)
[self resetIdleTimer];
}
}
- (void)resetIdleTimer {
if (idleTimer) {
[idleTimer invalidate];
[idleTimer release];
}
idleTimer = [[NSTimer scheduledTimerWithTimeInterval:maxIdleTime target:self selector:@selector(idleTimerExceeded) userInfo:nil repeats:NO] retain];
}
- (void)idleTimerExceeded {
NSLog(@"idle time exceeded");
}
maxİdleTime ve idleTimer örnek değişkenler olduğu.
Bunun çalışabilmesi için, ayrıca ana değiştirmek gerekir.m UİApplicationMain ana sınıfı olarak temsilci sınıfı (bu örnekte, AppDelegate) kullanmak söylemek için:
int retVal = UIApplicationMain(argc, argv, @"AppDelegate", @"AppDelegate");
Tercihler Android: Nasıl kullanıcı...
Nasıl kullanıcı tarih/saat ekran'...
Nasıl ya iPhone 5 ekran çözünürlüğü iç...
Nasıl iPhone 5 (geniş ekran cihazlar) ...
Ne'algılamak için en iyi yolu s &...