前面了解了触摸发生的相关类与方法,然后就是触摸事件的处理了。触摸事件的处理就比较简单。重写Respond的四个方法即可。
当然前提是该控件是可以响应触摸事件的。一般情况继承UIRespond的控件都可以响应触摸事件。然而仍然有一些控件比较特殊,不可以响应,比如默认UIImageView、UILabel控件不可接触等。
UIView不接受触摸事件的三种情况:
- 不接受用户交互:userInteractionEnable = NO; (例如:UILabel、UIImageView这些控件,userInteractionEable默认就是NO,因此这些控件默认是不能接受触摸事件的)
- 隐藏:hidden = YES; 隐藏则用户触摸不到啊。。
- 透明:alpha = 0.0f ~0.01f ,相当于隐藏了控件
响应触摸的方法:如果希望自定义的控件可以响应用户的触摸事件,则重写UIRespond的以下四个方法来实现
`
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;
//当用户手指开始触碰控件时激发该方法
-(void)touchesMoved:(NSSet )touches withEvent:(UIEvent )event;
//当用户手指在控件上移动时出发该方法
-(void)touchesEnded:(NSSet )touches withEvent:(UIEvent )event;
//当用户手指结束触摸该控件(抬起手指)时激发该方法
-(void)touchesCancelled:(NSSet )touches withEvent:(UIEvent )event;
//手势取消函数。当系统事件(比如内存不足