首先,先上主菜。
在項(xiàng)目中有需要一轉(zhuǎn)盤選擇菜單。效果如箐優(yōu)網(wǎng)、建設(shè)銀行首頁菜單。
之前的寫法
1.在轉(zhuǎn)盤上添加UIPanGestureRecognizer手勢(shì),觸發(fā)手勢(shì)。
.began狀態(tài),記錄旋轉(zhuǎn)位置、初始旋轉(zhuǎn)角度并設(shè)置觸發(fā)起始時(shí)間。

began
.changed狀態(tài),計(jì)算旋轉(zhuǎn)的角度、位置并改變4個(gè)Button的CentPoint。

changed
.ended狀態(tài),依據(jù)旋轉(zhuǎn)的角度判斷是否觸發(fā)定時(shí)器,產(chǎn)生連續(xù)轉(zhuǎn)動(dòng)的效果。

ended

效果圖 【掩面】
優(yōu)點(diǎn)
1.可準(zhǔn)確獲得btn點(diǎn)擊的點(diǎn)擊事件。
缺點(diǎn)
1.轉(zhuǎn)動(dòng)結(jié)束btn位置計(jì)算教為復(fù)雜
2.轉(zhuǎn)動(dòng)效果不理想
--------------------------------我是分割線-----------------------------
無意中發(fā)現(xiàn)這哥們寫的,動(dòng)畫效果好很多。遂改用Swift重寫了下。

現(xiàn)在的效果圖
但是也有坑,先留著后面慢慢填。
坑
1.在真機(jī)6S及以上機(jī)型Btn點(diǎn)擊無效??赡苁强勺远x手勢(shì)相沖突,也有可能是和3D Touch有關(guān)。
2.獲取選中的btn有時(shí)會(huì)錯(cuò)。獲取旋轉(zhuǎn)角度有誤。