UIResponder常用方法

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: 通知接收者当系统发出取消事件的时候

- (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



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值