微信摇一摇实现原理,视图展示

一: 实现原理

在 UIResponder中存在这么一套方法

- (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_3_0);

- (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_3_0);

- (void)motionCancelled:(UIEventSubtype)motion withEvent:(UIEvent *)event __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_3_0);

这就是执行摇一摇的方法。那么怎么用这些方法呢?

很简单,你只需要让这个Controller本身支持摇动

同时让他成为第一相应者:

- (void)viewDidLoad

{

    [superviewDidLoad];

// Do any additional setup after loading the view, typically from a nib.

    [[UIApplication sharedApplication] setApplicationSupportsShakeToEdit:YES];

    [self becomeFirstResponder];

}

//然后去实现那几个方法就可以了

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

{

    //检测到摇动

}

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

{

    //摇动取消

}

- (void) motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event

{

    //摇动结束

    if (event.subtype == UIEventSubtypeMotionShake) {

        //something happens

    }

}

  

二: 动画效果实现

// 摇动结束 调用该方法即可
- (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"];
}

  

时间: 2024-08-24 19:45:26

微信摇一摇实现原理,视图展示的相关文章

蓝牙Ibeacon室内定位和微信摇一摇周边原理分析

苹果推出Ibeacon室内定位技术是为了弥补GPS无法覆盖室内定位这种场景.苹果意味着创新,在其推动下,蓝牙Ibeacon得到了极大的应用.而腾讯则是利用蓝牙Ibeacon在场景体验方面进行了创新,实现了微信摇一摇周边的功能,这在O2O领域有巨大的潜力. 对苹果和腾讯来说,Ibeacon都是应用创新,而不是技术创新. 本文分析Ibeacon室内定位和微信摇一摇的原理. 一.无线测距原理 无线信号都有一个信号强度(RSSI),蓝牙BLE自然也有.根据蓝牙BLE自身的发射功率(假设能够获取这个功率值

微信摇一摇红包

 功能介绍  2015年9月份左右微信摇一摇周边开放了"摇一摇红包组件接口",具备开发能力的用户,可以调用该接口进行功能开发.摇一摇红包功能通过简便的操作方式减少用户的操作层级.优化了用户的互动体验,并且趣味性地留存了用户和促进了品牌推广,参与活动的用户仅需在ibeacon设备蓝牙广播范围内打开手机蓝牙,进入微信摇一摇,等待出现"周边"入口,即可摇到现金红包,用户点击拆开红包,直接转入微信零钱包并且默认用户关注了公众号.  用户领取红包流程  现在,跟着一起,来体验

Android 微信摇一摇功能实现

开发之前 今天学习了一下传感器, 脑子里就蹦出了微信的摇一摇, 于是鼓了鼓勇气抽空写了出来, 本人菜鸟一枚, 希望大神们多多指点 开发环境 Android Studio 2.2.1 JDK1.7 API 24 Gradle 2.2.1 相关知识点 加速度传感器 补间动画 手机震动 (Vibrator) 较短 声音/音效 的播放 (SoundPool) 开始开发 案例预览 案例分析 我们接下来分析一下这个案例, 当用户晃动手机时, 会触发加速传感器, 此时加速传感器会调用相应接口供我们使用, 此时

C#开发微信门户及应用(28)--微信“摇一摇·周边”功能的使用和接口的实现

”摇一摇周边“是微信提供的一种新的基于位置的连接方式.用户通过“摇一摇”的“周边”页卡,可以与线下商户进行互动,获得商户提供的个性化的服务.微信4月份有一个赠送摇一摇设备的活动,我们有幸获得赠送资格,取得一个摇一摇的设备用来测试这个新增的.很有潜力的功能.”摇一摇周边“是微信基于低功耗蓝牙技术的 O2O 入口级应用,与微信的其他线下连接能力一道,加速促成了微信 O2O 闭环的实现.本文主要介绍一摇设备的配置使用,以及如何在开发层面上,定义及实现微信摇一摇的功能接口. 1.IBeacon基础知识介

微信企业号开发:微信考勤摇一摇考勤

看到网上又不好微信企业号的摇一摇考勤,自己也想做一个,但查遍了微信企业号文档,也没有看到摇一摇的相关API,本以为做不出来了,想不到再问了同事后,才知道其实很简单,摇一摇不需要微信企业号的文档,HTML5就有,摇一摇其实就是相当于点击了保存按钮而已. 其实获取地理位置HTML5也支持. HTML5 - 使用地理定位 <script> var x=document.getElementById("demo"); function getLocation() { if (nav

(实用篇)php官方微信接口大全(微信支付、微信红包、微信摇一摇、微信小店)

微信入口绑定,微信事件处理,微信API全部操作包含在这些文件中.内容有:微信摇一摇接口/微信多客服接口/微信支付接口/微信红包接口/微信卡券接口/微信小店接口/JSAPI <?php class WxApi { const appId = ""; const appSecret = ""; const mchid = ""; //商户号 const privatekey = ""; //私钥 public $parame

微信摇一摇羊年运势签实现?

在看其他公众号关于摇一摇实现代码前,大概猜想先建立一批各种运势的图文页面,然后通过摇一摇产生随机数字,并跳转到对应页面. 跟友人开玩笑,就弄一根上上签,怎么摇都是这个结果,皆大欢喜. 言归正传,先看看实现效果:http://www.avalonits.cn/wechat_rand/index.html 微信打开该页面,即可实现摇一摇. 当然,各微信公众号运营商都希望跳转到自己的页面,那么只要更改nvshengu.js中相应代码即可: jumpToDecode = function(){ ? 1

微信日志现实摇一摇抽签

这一节我们简单介绍一下在微信日志中实现摇一摇抽签功能的实现. 摇一摇抽签的实现主要是借助JS进行页面跳转实现的. 抽签的签文可以在自己的微信公众号中事先写好,然后将URL记录下来,在JS跳转中导入便可以实现. 逻辑图如下: ?点击链接跳转到主界面(index.html) ?摇一摇手机(点击手机)跳转到抽签JS(index.js) ?随机结果选择微信公众号中已写好的文章 主界面的实现简单代码如下(index.html): <div class="do">摇一摇手机</d

js html5 仿微信摇一摇

看微信摇一摇之后忽然想知道他是怎么写的.于是就在网上查了一些资料,有些是借鉴别人的.大家共同学习啊 先放代码 <body onload="init()"> <p>用力摇一摇你手机</p> <audio style="display:hiden;width:0px; height:0px;" id="musicBox" preload="metadata" controls src=&q