
102
|
第
3
章
override func motionBegan(_ motion: UIEvent.EventSubtype, with event: UIEvent?) {
//
摇晃开始,显示一个
Label
self.shakingLabel.isHidden = false
}
override func motionEnded(_ motion: UIEvent.EventSubtype, with event: UIEvent?) {
//
摇晃结束后一秒,隐藏
Label
let delayInSeconds : Double = 1.0
DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + delayInSeconds) {
self.shakingLabel.isHidden = true
}
}
override var canBecomeFirstResponder: Bool {
return true
}
讨论
视图和视图控制器能够识别摇晃手势。如果需要视图控制器识别摇晃手势,我们首
先需要告诉系统,某个视图控制器能够成为“
first responder
”,也就是说,它能够
接收类似摇晃这样的动作手势。
当摇晃开始,视图控制器就会立即收到
motionBegan(_, with:)
消息。当摇晃结束,
又会收到
motionEnded(_, with:)
消息。
在这个例子中,我们仅仅是在摇晃开始时显示一个 ...