zoukankan      html  css  js  c++  java
  • iOS 摇一摇的功能

    效果如下

    相关素材

    相关代码如下

    #import "ShakeViewController.h"
    #import <AudioToolbox/AudioToolbox.h>
    #import <AVFoundation/AVFoundation.h>
    
    #define kScreenWidth  [UIScreen mainScreen].bounds.size.width
    #define kScreenHeight [UIScreen mainScreen].bounds.size.height
    
    @interface ShakeViewController ()
    
    @property (nonatomic,strong)UIImageView *topImgView;
    @property (nonatomic,strong)UIImageView *botImgView;
    
    @property (nonatomic) SystemSoundID  soundID;
    
    @end
    
    @implementation ShakeViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        
        
        [UIApplication sharedApplication].applicationSupportsShakeToEdit = YES;
        [self becomeFirstResponder];
        self.view.backgroundColor = [UIColor colorWithRed:245/255.0
                                                    green:245/255.0
                                                     blue:245/255.0
                                                    alpha:1.0];
        
        [self inintImageView];
        [self initSoudID];
    }
    
    //初始化振动的图片
    - (void)inintImageView
    {
        //中间线位置
        CGFloat y = 64+(kScreenHeight-64)/2;
        //图片的比例  宽/高
        CGFloat scale = 208/320.0;
        
        _topImgView = [[UIImageView alloc]initWithFrame:CGRectMake(0, y-(kScreenWidth*scale), kScreenWidth, kScreenWidth*scale)];
        _topImgView.image = [UIImage imageNamed:@"Shake_01"];
        [self.view addSubview:_topImgView];
        
        _botImgView = [[UIImageView alloc]initWithFrame:CGRectMake(0, y, kScreenWidth, kScreenWidth*scale)];
        _botImgView.image = [UIImage imageNamed:@"Shake_02"];
        [self.view addSubview:_botImgView];
    }
    
    //对soundID进行赋值
    - (void)initSoudID
    {
        NSString *path = [[NSBundle mainBundle] pathForResource:@"shake_sound_male" ofType:@"wav"];
        AudioServicesCreateSystemSoundID((__bridge CFURLRef)[NSURL fileURLWithPath:path], &_soundID);
    }
    
    
    /*************************** 振动检测 ******************************/
    -(void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event
    {
        //播放
        AudioServicesPlaySystemSound (_soundID);
    
        CGFloat y_top = _topImgView.frame.origin.y;
        CGFloat y_bot = _botImgView.frame.origin.y;
    
        [UIView animateWithDuration:0.3 animations:^{
            
            _topImgView.frame = CGRectMake(0, y_top-50, _topImgView.frame.size.width, _topImgView.frame.size.height);
            _botImgView.frame = CGRectMake(0, y_bot+50, _botImgView.frame.size.width, _botImgView.frame.size.height);
            
        } completion:^(BOOL finished) {
            
            [UIView animateWithDuration:0.3 animations:^{
                
                _topImgView.frame = CGRectMake(0, y_top, _topImgView.frame.size.width, _topImgView.frame.size.height);
                _botImgView.frame = CGRectMake(0, y_bot, _botImgView.frame.size.width, _botImgView.frame.size.height);
                
            } completion:^(BOOL finished) {
                
            }];
            
        }];
    }
    
    -(void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event
    {
        [self performSelector:@selector(vibrate) withObject:nil afterDelay:0.6];
    }
    
    
    -(void)vibrate
    {
        //振动
        AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);
    }
    
    
    
    
    @end
  • 相关阅读:
    Scrapy爬虫之from import错误解决
    Mysql之IF嵌套和CASE WHEN的转化
    win10安装Redis
    win10安装elasticsearch
    Flink输出到JDBC
    Flink输出到Elasticsearch
    Flink输出到Redis
    IntelliJ IDEA 激活—2020年1月10号
    Flink输出到Kafka(两种方式)
    用C写一个功能较为完善的贪吃蛇小游戏
  • 原文地址:https://www.cnblogs.com/qianLL/p/5579416.html
Copyright © 2011-2022 走看看