有创建表盘的任何例子吗?

时间:2009-10-20 04:13:41

标签: iphone cocoa-touch iphone-sdk-3.0 core-animation core-graphics

我想创建一个与某些复古手机应用程序具有类似行为的表盘。它们有一个圆形拨号器,可以让你用手指旋转它。任何想法如何创建或一些讨论方面的链接?

1 个答案:

答案 0 :(得分: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];

检测拨打的实际号码可以通过多种方式完成,从在表盘上创建隐形按钮并从中获取事件或计算将旋转拨号返回到家所需的旋转角度。 我不认为实施它会非常困难,这是很难的艺术品。