原文地址:http://blog.youkuaiyun.com/smking/article/details/8073747
下面这个方法使用的地方很多, 比如在一个UITextView中要加上点击方法,如在这个UITextView的左边和右边点击的事件分别为向上和向下翻页,估计就可以使用下面这个方法。不过尚进行进行验证。
转 自:http://blog.youkuaiyun.com/volcan1987/article/details/6677370
用过UIScrollView的都会发现UIScrollView不会响应touch事件,这样就无法在touchesEnd方法中做一些事情了,比如关闭键盘等等。其实写个category就可以解决这个问题了,直接上代码:
@implementation UIScrollView (UITouch)
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
//if(!self.dragging)
{
[[self nextResponder] touchesBegan:touches withEvent:event];
}
[super touchesBegan:touches withEvent:event];
}
-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
//if(!self.dragging)
{
[[self nextResponder] touchesMoved:touches withEvent:event];
}
[super touchesMoved:touches withEvent:event];
}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
//if(!self.dragging)
{
[[self nextResponder] touchesEnded:touches withEvent:event];
}
[super touchesEnded:touches withEvent:event];
}
@end
来自apple文档:touchesMoved:withEvent:
Declaration
SWIFT
func touchesMoved(_ touches: NSSet,
withEvent event: UIEvent)
OBJECTIVE-C
- (void)touchesMoved:(NSSet *)touches
withEvent:(UIEvent *)event
Parameters
touches
A set of UITouch instances that represent the touches that are moving during the event represented by event.
event
An object representing the event to which the touches belong.
Discussion
The default implementation of this method does nothing.
<pre name="code" class="objc">However immediate UIKit subclasses of UIResponder, particularly UIView, forward the message up the responder chain. To forward the message to the next responder, send the message to super (the superclass implementation); do not send the message directly to the next responder. For example,
Multiple touches are disabled by default. In order to receive multiple touch events you must set the a multipleTouchEnabled property of the corresponding view instance to YES.
If you override this method without calling super (a common use pattern), you must also override the other methods for handling touch events, if only as stub (empty) implementations.
注意:touchesMoved默认实现是 什么都不做
ios中事件从上层往下层派发(找到touch事件处理的当前视图,然后就由他接收),之后的响应处理(responder)从下往上传递(scrollview=》uiview=》uiviewcontroller=》uiwindow=》appdelegate)。