1

我想創建一個與某些復古手機應用程序具有類似行爲的撥號盤。這些有一個圓形撥號器,可以讓你用手指旋轉它。任何想法如何創建或一些討論它的方面的鏈接?創建撥號的任何示例?

回答

2

創建帶有數字的圓形撥號。創建您的移動撥號部分作爲中心在數字撥盤上的透明圖像,以便您可以通過透明孔看到數字。在兩個手指上應用一個小圖像。當您在其中一個洞區中觸摸時,會跟蹤手指的運動。隨着手指移動旋轉透明撥號圖像以使用變換矩陣跟隨它。如果手指移動錯誤,或者手指擡起或移動到旋轉撥號盤外,撥盤就會「釋放」,您可以使用合適的速度撤消旋轉以模擬彈簧加載的返回。

[UIView beginAnimations:nil context:NULL]; 
[UIView setAnimationDuration:d]; 
[UIView setAnimationCurve:UIViewAnimationCurveLinear]; 
[UIView setAnimationBeginsFromCurrentState:YES]; 
CGAffineTransform transform = CGAffineTransformMakeRotation(/* some angle */); 
image.transform = transform; 
[UIView commitAnimations]; 

撥打檢測可以做多種方式,從錶盤上創造無形按鈕,抓住從這些事件中或通過計算旋轉的旋轉撥盤返回家園所需的角度的實際數量。 我不認爲實施這將是非常困難的,這是很難的藝術作品。

+0

非常感謝!你如何通過setAnimationDuration使它跟上用戶的速度,而不是一定的速度:? – 4thSpace 2009-10-21 04:57:57

+0

您可以輕鬆獲得觸摸座標。如果您考慮使用機械手機撥號盤,只要您足夠努力,就可以以任意速度旋轉它。因此,當觸摸變化時,週期性地(定時器?每第n次觸摸通知?)計算出先前採樣點,新點和中心樞軸點之間的角度,並且執行相當快速的旋轉(如上)以跟隨手指。我希望能夠以幾乎任何速度沿順時針方向移動它,但它總是以機械彈簧速度沿逆時針方向返回。 – 2009-10-21 05:26:38