一、UI事件的分类:
事件:
Events are objects sent to an app to inform it of user actions. In iOS, events can take many forms: Multi-Touch events, motion events, and events for controlling multimedia. This last type of event is known as a remote control event because it can originate from an external accessory.
1.Multitouch events:屏幕的触摸
2.Accelerometer events:对设备的直接操作比如摇晃
3.RemoteControl events:对设备的远程控制,比如耳机按键控制手机歌曲播放
以Touch为例:
UIViewController 继承自UIResponder
实现了下面四个事件响应:
func touchesBegan(touches: NSSet, withEvent event: UIEvent)
func touchesMoved(touches: NSSet, withEvent event: UIEvent)
func touchesEnded(touches: NSSet, withEvent event: UIEvent)
func touchesCancelled(touches: NSSet!, withEvent event: UIEvent!)
我们也可以在自定义的UIView类中实现这四个事件:
import UIKit
class LyUIImageView: UIView {
/*
// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
override func drawRect(rect: CGRect) {
// Drawing code
}
*/
override init(frame: CGRect) {
super.init(frame: frame)
}
required init(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
override func touchesBegan(touches: NSSet, withEvent event: UIEvent) {
NSLog("Touch began")
return
}
override func touchesMoved(touches: NSSet, withEvent event: UIEvent) {
NSLog("Touch Moved")
return
}
override func touchesCancelled(touches: NSSet!, withEvent event: UIEvent!) {
NSLog("Touch Cancelled")
return
}
override func touchesEnded(touches: NSSet, withEvent event: UIEvent) {
NSLog("Touch end")
return
}
}
二、代码添加手势识别步骤:
1.建立和设置手势识别器实例,设置target、action和制定一些属性;
var gester1 = UITapGestureRecognizer(target: self, action: "myImageViewClicked")
2.附加识别器到视图;
self.myImageView.addGestureRecognizer(gester1)
3.实现响应action。
func myImageViewClicked(){
NSLog("my taped")
}
注意事项:
无论是手动代码绑定的手势识别还