2016-01-20 63 views
1

我正在寻找一种方法来检测用户是否在屏幕上(屏幕持续1秒)我尝试使用计时器,但我没有工作。这是我现在的代码。Swift 2.0如何检测用户是否持有,而不是仅仅点击

var brakeTimer = NSTimer() 

func update() { 
    print("The user is holding the screen") 
} 

override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) { 
    var brakeTimer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: "update", userInfo: nil, repeats: true) 
} 


override func touchesCancelled(touches: Set<UITouch>?, withEvent event: UIEvent?) { 
    brakeTimer.invalidate() 
} 
+2

我认为你正在寻找一个[UILongPressGestureRecognizer(https://developer.apple.com/library/ios/documentation/UIKit/Reference/UILongPressGestureRecognizer_Class/) – Cristik

回答

6

在界面上的“保持”在iOS开发中通常被称为“长按”。以下是如何设置这些之一:

let longPressRecognizer = UILongPressGestureRecognizer(target: self, action: "longPressed:") 
     self.view.addGestureRecognizer(longPressRecognizer) 

func longPressed(sender: UILongPressGestureRecognizer) 
    { 
     println("longpressed") 
    } 

与之相对简单的水龙头识别器,当用户在屏幕上简单的水龙头,而不是持有一段较长的时间,这将触发。

let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: "tapped:") 
     self.view.addGestureRecognizer(tapGestureRecognizer) 

    func tapped(sender: UITapGestureRecognizer) 
    { 
     println("tapped") 
    } 
+1

您也可以使用之间的计时器按下一个手指然后释放,但使用LongPress按照这里建议的方式更适合大多数用途。 – Jeremiah

+0

@Jeremiah是啊我想时间UITouchDown和UITouchUpInside之间的区别,类似的东西? – Woodstock

相关问题