2017-11-14 13 views
0

"x"분 후에 응용 프로그램에서 자동 시간 초과 시나리오를 설정하려고합니다. 나는 타이머 타이머 ("x"분 후에)를 사용하여 타이머 호출을 시도했다. 사용자가 스크롤 가능/탭 상태의 T & C 페이지를 읽으면 타이머가 트리거됩니다. 그러나 사용자가 아무 작업 (터치, 스크롤)을하지 않을 때 타이머 호출을 기다리고 있습니다. 단순히 사용자가 지정된 시간 동안 화면을 터치하지 않으면, 나는 시간 초과 팝업을 호출해야합니다. 내 전체 응용 프로그램에 대해이 시간 초과 시나리오를 처리하고 싶습니다.응용 프로그램이 활성 또는 유휴 상태임을 아는 방법은 무엇입니까?

답변

3

화면상의 접촉을받는 UIWindowUITapGestureRecognizer을 사용할 수 있습니다. 여기에 그 timeOut 함수가 호출 한 후 5 초 동안 타이머를 추가했습니다.

Appdelegate

var window: UIWindow? 
    var timer: Timer? 

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { 
     // Override point for customization after application launch. 
     let tapGesture = UITapGestureRecognizer(target: self, action: nil) 
     tapGesture.delegate = self 
     window?.addGestureRecognizer(tapGesture) 
     //Start timer for first time 
     timer = Timer.scheduledTimer(timeInterval: 5, target: self, selector: #selector(self.timeOut), userInfo: nil, repeats: false) 
     return true 
    } 

    func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldReceive touch: UITouch) -> Bool { 
     print(" tapped on screen,") 
     timer?.invalidate() 
     //set Timer Ex: 5 Second 
     //Run timer on touch 
     timer = Timer.scheduledTimer(timeInterval: 5, target: self, selector: #selector(self.update), userInfo: nil, repeats: false) 
     return false 
    } 
    @objc func timeOut() { 
     print("TimeOut") 
    } 
+0

그것은,있는 tableView 스크롤과 탭, UItextView 스크롤, 라벨 탭, 버튼 탭, UIWindow' : – Jack

+0

덕분에 많은 잭'에있는 모든 개체를 작품에 UIGestureRecognizerDelegate 추가 – Senthilkumar