我希望能夠檢測到印刷機何時開始,因此只有在按下時才能執行動作,並在按下時停止該動作。在swift中,如何檢測按鍵何時開始並在UILabel上結束?
我知道UILabels上有一個pressBegan函數,但我不知道如何使用它,似乎無法找到示例。
我希望能夠檢測到印刷機何時開始,因此只有在按下時才能執行動作,並在按下時停止該動作。在swift中,如何檢測按鍵何時開始並在UILabel上結束?
我知道UILabels上有一個pressBegan函數,但我不知道如何使用它,似乎無法找到示例。
您可以使用UILongPressGestureRecongizer。
初始化pressGestureRecongizer在你的viewController的viewDidLoad方法,並把它添加到標籤:
let pressGestureRecognizer = UILongPressGestureRecognizer(target: self, action: "handlePress:")
label.addGestureRecognizer(pressGestureRecognizer)
,然後你定義handlePress功能
func handlePress(sender: UILongPressGestureRecognizer) {
if sender.state == UIGestureRecognizerState.Began {
// handle start of pressing
}
else if sender.state == UIGestureRecognizerState.Ended {
// handle end of pressing
}
}
作爲一個測試,我把這段代碼放入並在if語句中添加了兩個NSLog,並在else中添加了一個,但只有else中的一個if(結束狀態)即將進入控制檯。這是標籤上的唯一手勢。 – daredevil1234
你說得對,UITapGestureRecognizer只調用UIGestureRecongizerState.Ended的動作。我修改了最初的答案。現在它使用UILongPressGestureRecognizer。我也改進了整體設計。 –
謝謝!這有我想要的功能,但它需要一點時間,因爲它是一個長時間按現在,而不是一個正常的媒體。我現在只會忽略那個暫時的延遲,因爲它很瑣碎 – daredevil1234
的[我怎麼能確定可能的複製如果一個UILabel被感動?](http://stackoverflow.com/questions/2539380/how-can-i-determine-if-a-uilabel-was-touched) – JAL
我不完全確定如何重新創建斯威夫特雖然?我將嘗試編寫這個答案的快速解釋版本 – daredevil1234
您應該創建一個自定義手勢識別器並將其添加到標籤。 – Aurast