公司要實現點擊抽獎開始動畫,結果返回后緩慢停止到抽獎區域,在網上Google出來的大部分轉盤demo都是等抽獎結果返回開啟動畫,經過兩天的研究,可以隨時開始與結束的轉盤分享給大家(主要難點在于計算減速動畫速度的計算)。
先上結果展示圖(圓形轉盤):
圓形轉盤圖,盜用網上素材,諸君莫怪
ps:圓形轉盤因為性能的緣故在模擬器可能效果有些不理想,請以真機為主
來人吶,上代碼:
點擊開始按鈕,開啟定時器,無限執行旋轉動畫
無限旋轉動畫
點擊停止按鈕,首先停止無限旋轉動畫
停止無限旋轉動畫
在無限旋轉的動畫停止的回調里開啟緩慢結束動畫:
關鍵代碼,根據減速過程的平均速度,計算減速時間
關鍵點:
1.為了確保最終指向的位置和無限旋轉動畫的位置之間的過程太短導致減速太突兀,所以減速動畫會額外旋轉一圈
2.random是模擬出的抽獎結果,計算出將要減速的路程一圈+抽獎結果,減速過程的平均速度為將要開始減速時的速度的一半(小學知識??),路程/平均速度=減速時間,設置動畫快進慢出,減速動畫搞定。
以及老虎機樣式的轉盤
老虎機轉盤的大致原理和圓形轉盤的相同,參考代碼。
代碼下載?