İOS'ta Swift ile uygulamamda ekran kilidi nasıl engellenir


113

Ekran kilidini yalnızca Navigasyon kullanırken nasıl engelleyebilirim?

Waze'in bunu yapma seçeneği var, bunu Uygulamamda nasıl yapabilirim?

Yanıtlar:


241

Bunu kullan:

Objective-C:

[[UIApplication sharedApplication] setIdleTimerDisabled: YES];

Swift (eski):

UIApplication.sharedApplication().idleTimerDisabled = true

Swift 3 ve üzeri:

UIApplication.shared.isIdleTimerDisabled = true

İçe aktarmayı unutmayın UIKit.

İşte apple.developer.com gelen belgelere bağlantıdır.


4
Swift şu şekilde olmalıUIApplication.sharedApplication().idleTimerDisabled = true
Doug

3
Swift 3:UIApplication.shared.idleTimerDisabled = true
funkenstrahlen

2
Şu şekilde değiştirildiUIApplication.shared.isIdleTimerDisabled = true
Lucas Farah

1
bu satırı nereye ekleyeceksiniz? React-native kullandığım için AppDelegate.swift'im yok
Pradnyanand Milind Pohare

@PradnyanandMilindPohare istediğiniz yere ekleyebilirsiniz, sadece bu satırın çalıştırıldığından emin olun
Mellao

20

Swift 3.0 için, kodu nereden çağırmak istediğinize bağlı olarak iki seçenek vardır:

AppDelegate.swift içinde:

application.idleTimerDisabled = true

AppDelegate.swift dışında:

UIApplication.shared().isIdleTimerDisabled = true


2
Dış AppDelegate.swift kodu şöyle olmalıdır:UIApplication.shared.isIdleTimerDisabled = false
DevStarlight

13

Swift 4

AppDelegate.swift dosyasında, uygulama işlevinin içine aşağıdaki satırı ekleyin :

    application.isIdleTimerDisabled = true

6

Benim küçük lib Insomnia'yı (Swift 3, iOS 9+) kullanabilirsiniz - bir başka güzel özellik ise sadece şarj olurken uyumayı engelleyebilmenizdir.

idleTimerDisabledSoultion tamam ama bunu ayarlamak için hatırlamak zorunda falsesonradan.


0

Daha gelişmiş bir durumunuz varsa, küçük projemizi kullanabilirsiniz: ScreenSleepManager veya sadece belirli ViewControllers ile ilgili ise - daha önce belirtildiği gibi Insomnia'yı kullanın . idleTimerDisabledNeredeyse her zaman manuel olarak ilgilenmek bana bazı sorunlara neden oldu (yanlışa yeniden ayarlamayı unutmak veya onu ayarlamaya çalışan birden çok (iç içe geçmiş) modülü ele almak gibi).

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.