美文网首页
运动事件

运动事件

作者: FallPine | 来源:发表于2016-11-16 16:09 被阅读13次
  • 在iOS中和运动相关的有三个事件:开始运动、结束运动、取消运动。
运动事件 说明
- (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event NS_AVAILABLE_IOS(3_0); 运动开始时执行
- (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event NS_AVAILABLE_IOS(3_0); 运动结束后执行
- (void)motionCancelled:(UIEventSubtype)motion withEvent:(UIEvent *)event NS_AVAILABLE_IOS(3_0); 运动被意外取消时执行

监听运动事件对于UI控件有个前提就是监听对象必须是第一响应者(对于UIViewController视图控制器和UIAPPlication没有此要求)。这也就意味着如果监听的是一个UI控件那么-(BOOL)canBecomeFirstResponder;方法必须返回YES。同时控件显示时(在-(void)viewWillAppear:(BOOL)animated;事件中)调用视图控制器的becomeFirstResponder方法。当视图不再显示时(在-(void)viewDidDisappear:(BOOL)animated;事件中)注销第一响应者身份。

  • 给自定义UIImageView,使摇晃切换图片
#import "QSImageView.h"

@interface QSImageView()
@property (nonatomic, assign) NSInteger index;
@end

@implementation QSImageView
- (void)awakeFromNib
{
    [super awakeFromNib];
    [self becomeFirstResponder];
}

- (instancetype)initWithFrame:(CGRect)frame {
    self = [super initWithFrame:frame];
    if (self) {
        UIImage *img=[UIImage imageNamed:@"photoName.png"];
        [self setImage:img];
    }
    return self;
}

- (BOOL)canBecomeFirstResponder
{
    return YES;
}

#pragma mark 运动开始
-(void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event{
    //这里只处理摇晃事件
    if (motion==UIEventSubtypeMotionShake) {
        self.image=[self getImage];
    }
}
#pragma mark 运动结束
-(void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event{
    
}

#pragma mark 随机取得图片
-(UIImage *)getImage{
    self.index++;
    if (self.index > 2) {
        self.index = 0;
    }
    NSString *imageName=[NSString stringWithFormat:@"%li",(long)self.index];
    UIImage *image=[UIImage imageNamed:imageName];
    
    return image;
}
@end

这篇文章参考至:【Kenshin Cui's Blog】【iOS开发系列--触摸事件、手势识别、摇晃事件、耳机线控】

相关文章

  • 运动事件

    在iOS中和运动相关的有三个事件:开始运动、结束运动、取消运动。 监听运动事件对于UI控件有个前提就是监听对象必须...

  • 2019-08-03

    抵抗运动通知 144OOO 今天 事件期间,受抵抗运动信任的事件个人、事件群体,有可能会收到抵抗运动的通知,请其立...

  • iOS 事件传递和事件响应

    事件的产生 iOS中事件分为:触摸事件(Touch Events)、运动事件(Motion Events)、远程事...

  • 事件响应和响应者链

    iOS 的事件主要分为以下几类: Touch Events(触摸事件) Motion Events(运动事件,比如...

  • iOS事件机制

    iOS事件可以分为3种: Touch Events(触摸事件) Motion Events(运动事件) Remot...

  • 事件层级原理 响应链

    iOS事件 运动事件,远程控制事件、触摸事件 触摸事件 事件传递的顺序 当点击红色的时候 打印为 事件传递的方法 ...

  • iOS 事件传递机制

    iOS的事件分为以下几种 Touch Events 触摸事件 Shake-motion events 运动事件,比...

  • iOS 事件响应链

    iOS中三种事件类型 触屏事件(Touch Event) 运动事件(Motion Event) 远端控制事件(Re...

  • 事件传递和响应链

    事件分类 在iOS中,事件可以采取多种形式:多点触摸事件(touch),运动事件(motion),远程控制事件(r...

  • 事件---触摸、运动、遥控

    触摸事件,有屏幕捕捉到的用户对屏幕的操作(点击,双击,长按,滑动,捏合,) APP中使用最多的就是触摸事件,基本空...

网友评论

      本文标题:运动事件

      本文链接:https://www.haomeiwen.com/subject/dferpttx.html