SORU
7 Kasım 2008, Cuma


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
21 Kasım 2008, Cuma


İş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");

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • уσ ρℓz sυв ιℓℓ sυв вαcқ

    уσ ρℓz

    14 EKİM 2010
  • listedabive

    listedabive

    30 Ocak 2007
  • Matt Davis

    Matt Davis

    4 ŞUBAT 2006