UIResponder类是UIApplication、UIView、UIViewController的超类。
其实例方法包括:
第一、(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event :当一个触摸事件结束时发出的UITouch实例对象
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
NSLog(@"touchesEnded");
}
第二、touchesBegan:withEvent:通知调用者当有一根或者多根手指触摸到了视图或者窗口
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch=[touches anyObject];
NSUInteger tapCount=touch.tapCount;
if (tapCount == 1)
{
NSLog(@"单击");
}
else if(tapCount == 2)
{
[NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(singleTap) object:nil];
NSLog(@"双击");
}
CGPoint point = [touch locationInView:self];
NSLog(@"%@",NSStringFromCGPoint(point));
if ([touches count] ==2)
{
NSArray *touchArray = [touches allObjects];
UITouch *firstTouch = [touchArray objectAtIndex:0];
UITouch *secondTouch = [touchArray objectAtIndex:1];
CGPoint point1=[firstTouch locationInView:self];
CGPoint point2=[secondTouch locationInView:self];
NSLog(@"%@",NSStringFromCGPoint(point1));
NSLog(@"%@",NSStringFromCGPoint(point2));
}
}
第三、- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event :告诉接收者一个或者多个手指在视图或者窗口上触发移动事件。
self.multipleTouchEnabled =YES; //开启多点触摸
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
NSLog(@"touchesMoved");
UITouch *touch=[touches anyObject];
CGPoint point=[touch locationInView:self];
NSLog(@"%@",NSStringFromCGPoint(point));
}
- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event {
NSLog(@"touchesCancelled");
}
第四、becomeFirstResponder :通告接受者对象称为当前的第一响应者对象
第五- (BOOL)canBecomeFirstResponder; // default is NO
判断一个对象是否可以成为第一响应者。默认返回NO。
如果一个响应对象通过这个方法返回YES,那么它成为了第一响应对象,并且可以接收触摸事件和动作消息。
第六 - (BOOL)canResignFirstResponder; // default is YES
第七- (BOOL)resignFirstResponder;
resignFirstResponder(交出自己的第一响应者的身份,可以重写改函数,这样如果写出no的时候当调用这个方法的时候它会拒绝交出第一响应者的身份)
第八、- (BOOL)isFirstResponder;判断是否是第一响应者
第九、- (UIResponder*)nextResponder;
返回接收者的下一个相应,如果没有就返回nil
UIResponder类不自动存储和设置下一个响应者,而是默认返回nil。子类必须override这个方法来设置下一个响应者。
UIView实现了这个方法,因为可以返回管理这个UIView的UIViewController或者它的父类;
UIViewController实现了这个方法,返回UIViewController的View的父View;
UIWindow发挥UIApplication对象;
UIApplication返回nil