zoukankan      html  css  js  c++  java
  • iOS-类似微信摇一摇

    首先,一直以为摇一摇的功能实现好高大上,结果百度了。我自己也模仿写了一个demo。主要代码如下:

    新建一个项目,名字为AnimationShake。

    主要代码:

    - (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event
    {
    }

    - (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event
    {
        if (motion == UIEventSubtypeMotionShake )
        {
            // User was shaking the device. Post a notification named "shake".
            [[NSNotificationCenter defaultCenter] postNotificationName:@"shake" object:self];
        }
    }

    - (void)motionCancelled:(UIEventSubtype)motion withEvent:(UIEvent *)event
    {    
    }

    -(void)addAnimations{

        AudioServicesPlaySystemSound(_soundID);
        
        //让imgup上下移动
        CABasicAnimation *translation2 = [CABasicAnimation animationWithKeyPath:@"position"];
        translation2.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
        translation2.fromValue = [NSValue valueWithCGPoint:CGPointMake(160, 115)];
        translation2.toValue = [NSValue valueWithCGPoint:CGPointMake(160, 40)];
        translation2.duration = 0.4;
        translation2.repeatCount = 1;
        translation2.autoreverses = YES;
        
        //让imagdown上下移动
        CABasicAnimation *translation = [CABasicAnimation animationWithKeyPath:@"position"];
        translation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
        translation.fromValue = [NSValue valueWithCGPoint:CGPointMake(160, 345+44+20)];
        translation.toValue = [NSValue valueWithCGPoint:CGPointMake(160, 420)];
        translation.duration = 0.4;
        translation.repeatCount = 1;
        translation.autoreverses = YES;
        
        [_imgDown.layer addAnimation:translation forKey:@"translation"];
        [_imgUp.layer addAnimation:translation2 forKey:@"translation2"];
    }

    源码可以去我的github网站:https://github.com/linxiu下载看看。谢谢,欢迎大家指正,我是新手。

  • 相关阅读:
    Python入门系列——第20篇
    Python入门系列——第19篇
    windows下python使用pip命令安装builtwith库时,遇到的utf-8问题的解决
    Python入门系列——第18篇
    在相同的主机上创建一个duplicate数据库
    duplicate database的时候,rman连接 auxiliary database的后状态不正确
    使用duplicate target database ... from active database复制数据库
    RHEL7
    Oracle 监听器日志文件过大导致监听异常
    TNS-01251: Cannot set trace/log directory under ADR
  • 原文地址:https://www.cnblogs.com/linxiu-0925/p/5455558.html
Copyright © 2011-2022 走看看