眾所周知, 微信中的搖一搖功能: 搜尋人/歌曲/電視,同樣在一些其他類app中也有乙個搖一搖簽到, 搖一搖隨機選號等功能,下面以微信搖一搖功能來介紹實現原理.
對於搖一搖功能, 在ios中系統預設為我們提供了搖一搖的功能檢測api. ios 中既然已經提供了介面, 我們直接呼叫就好了.
#import
#import
實現原理
1. 監聽搖一搖方法
// 搖一搖開始
- (void)motionbegan:(uieventsubtype)motion withevent:(nullable uievent *)event ns_**ailable_ios(3_0);
// 搖一搖結束
- (void)motionended:(uieventsubtype)motion withevent:(nullable uievent *)event ns_**ailable_ios(3_0);
// 搖一搖取消
- (void)motioncancelled:(uieventsubtype)motion withevent:(nullable uievent *)event ns_**ailable_ios(3_0);
2. 解決搖一搖失效的情況.
ps: 使用 xcode6.x 後建立的專案,僅僅實現第一步監聽就可以實現,沒有遇到這種問題.
- (bool)canbecomefirstrespowww.cppcns.comnder
3. 搖一搖階段需要震動及聲音.
// 搖動開始
- (void)motionbegan:(uieventsubtype)motion withevent:(uievent *)event
// 搖動結束
- (void)motionended:(uieventsubtype)motion withevent:(uievent *)event
}4. 搖一搖階段需要動畫效果.
微信的搖一搖功能是先在檢視上放乙個搖後要顯示的:手拿手機的, 這個就是上下兩半拼在一起給人一種一張的感覺;當檢測到搖一搖 捕捉到晃動事件後,上下兩張分別上下做乙個動畫移動(上面的一半往上移,下面的往下移),在completion 裡面再移回來.
這裡有兩種方法:
方法一:抽出來新增動畫效果的方法, 在搖一搖結束方法裡新增這個方法.
- (void)addanimations
方法二.在搖一搖開始和結束裡新增搖動動畫效果及菊花效果
/*** 搖動開始
*/- (void)motionbegan:(uieventsubtype)motion withevent:(uievent程式設計客棧 *)event ];
}/**
* 搖動結束
*/- (void)motionended:(uieventsubtype)motion withevent:(uievent *)event ];
// 菊花暫停轉動並隱藏
[self.aiload stopanimating];
self.aiload.hidden = yes;
}當然也有使用搖一搖做其他功能的,可以在當結束搖動時,就傳送乙個網路請求作相關操作即可。
本文標題: ios仿微信搖一搖動畫效果加震動音效例項
本文位址:
微信搖一搖外掛程式ios iOS 仿微信搖一搖
釋放雙眼,帶上耳機,聽聽看 viewcontroller.m 搖一搖 import viewcontroller.h import lzaudiotool.h import define kwidth uiscreen mainscreen bounds.size.width define khei...
仿微信搖一搖實現搖動開始與結束監聽
安卓端做搖一搖,主要運用到sensormanager 這個類,通過重力感測器,獲取xyz三軸的位置變化,來判斷是否是搖動。注意 手機震動需要加入震動許可權 android.permission.vibrate 一 sensormanager 初始化 註冊sensormanager 獲取 sensor...
微信搖一搖原理
1 感測器 sensor 是什麼?感測器是能標識溫度,加速度等等物理現象的轉換電子訊號的機器。android sdk,在移動裝置中提供了各種各樣的感測器的api。2 感測器型別 方向 加速表 光線 磁場 臨近性 溫度等。3 sensorlistener介面是感測器應用程式的中心,它包括兩個必需方法 ...