我想創建一個UIViewController,它有一個超時時間,在一段時間後將展開一個segue,但檢測到屏幕活動並重置定時器的時間。想想一個密碼輸入屏幕,如果設備在那裏閒置,您希望屏幕超時。我想iphone/ipad會超時,然後當你解鎖並回到那個應用程序時,我想讓segue在這種情況下放鬆一下。什麼是最好的方法呢?如何通過UIViewController檢測屏幕活動(Swift,iOS 9)
回答
Decalare定時器
var timer = NSTimer()
在你viewDidLoad
DO設置爲任何你喜歡的
這裏terminateApp
將在60秒
timer = NSTimer.scheduledTimerWithTimeInterval(60, target: self, selector: Selector("terminateApp"), userInfo: nil, repeats: true)
func terminateApp(){
// Do your segue and invalidate the timer
timer.invalidate()
}
但是,如果用戶按下後調用計時器查看你想要使定時器無效並啓動一個新的定時器,請通過以下方式執行:
在你viewDidLoad
當用戶觸摸屏幕加gestureRecognizer
將調用ResetTimer函數:
let resetTimer = UITapGestureRecognizer(target: self, action: "resetTimer");
self.view.userInteractionEnabled = true
self.view.addGestureRecognizer(resetTimer)
func resetTimer(){
// invaldidate the current timer and start a new one
timer.invalidate()
timer = NSTimer.scheduledTimerWithTimeInterval(60, target: self, selector: Selector("terminateApp"), userInfo: nil, repeats: true)
}
您可以註冊您的視圖控制器UIApplicationDidBecomeActiveNotification
NSNotificationCenter.defaultCenter().addObserver(self, selector: "yourFunction", name: UIApplicationDidBecomeActiveNotification, object: nil)
或調用相關功能在您的視圖控制器從您的AppDelegate中的applicationDidBecomeActive
。
你也可以在applicationDidResignActive
被調用時處理事情,當你去背景而不是當你回來時做某事。如果用戶接通電話等,這有利於立即改變,而不是等待定時器。您可以使用計時器方式,在應用程序仍在屏幕上時處理非活動狀態 - 然後使用應用程序委託方法在應用程序停止活動時使計時器失效。
根據您嘗試支持的交互,您有幾個選項。
要檢測可能需要設置你的UIViewController
的view
是一些客戶UIView
子類覆蓋-hitTest:withEvent:
報告觸摸交互到它的控制器或其他一些代表接觸。或者,您可以定義一個手勢識別器來報告該視圖中的觸摸。任何一個人都會檢測控制器子視圖上的觸摸,但不一定是鍵盤事件(不是來自不屬於控制器視圖層次結構或來自硬件鍵盤的屏幕鍵盤)。
對於鍵盤事件,您可能需要依賴UITextFieldDelegate
和它的-textField:shouldChangeCharactersInRange:replacementString:
。我不能立即想到應用程序或查看廣泛的方法來檢測這些輸入。
要檢測設備被鎖定或應用程序失去焦點,您可能需要對UIApplicationWillResignActiveNotification
通知作出響應。
你想要哪些需要比我可以從你的問題提取更多的細節。
- 1. xpages如何檢測IOS屏幕旋轉
- 2. 如何通過USB鏡像iOS屏幕?
- 3. 啓動屏幕不顯示爲iOS 9
- 4. iOS 9的黑色屏幕
- 5. 檢測iOS UICollectionCell何時關閉屏幕
- 6. 如何檢測屏幕上
- 7. 檢測IOS中的屏幕解鎖事件Swift
- 8. 使用Swift在iOS中全局檢測屏幕切換(切換)
- 9. 檢測屏幕
- 10. 使用Javascript(或通過css)檢測小型(移動)屏幕
- 11. 檢測iOS AirPlay屏幕鏡像功能
- 12. iOS 9如何檢測靜音模式?
- 13. iOS - UIViewcontroller檢測旋轉?
- 14. 如何檢測屏幕何時開啓?
- 15. GIDSignIn白色屏幕上的iOS 9
- 16. 與活動屏幕
- 17. OpenLayers - 檢測全屏幕,普通屏幕之間切換
- 18. 如何檢測手指觸摸屏幕的時間長度iOS
- 19. 如何檢測iOS 5中的iPhone 5屏幕8
- 20. 如何檢測模擬iOS設備的屏幕尺寸?
- 21. 如何檢測iOS 4鍵盤在屏幕上與藍牙?
- 22. 檢測不活動並取消屏幕保護
- 23. 如何捕捉屏幕和檢測屏幕信息
- 24. 如何檢測屏幕上的變化?
- 25. 如何檢測手壓在Android屏幕
- 26. 如何只檢測CSS手機屏幕
- 27. 如何檢測屏幕是否連接?
- 28. 如何檢測屏幕旋轉?
- 29. 如何檢測視網膜屏幕?
- 30. 燒瓶 - 如何檢測小屏幕?
在應用程序內不活動的好回答 –