Iphone app - 如何用当前时间显示数字时钟

时间:2011-01-25 12:18:45

标签: iphone clock

大家好,我正在使用iphone应用程序,我需要在手表中显示当前时间这是一个显示静态时间或静态图像的手表。然后我们需要找到当前时间然后移动所有小时,分钟,秒针,这样他们应该设置为他们的时间。 你有什么想法吗? 感谢大家 这是我的代码:

//计算角度:     float minutesAngle =(0/60)* 360;     float hoursAngle =(10/12)* 360;

//Begin the animation block
[UIView beginAnimations:@"moveHands" context:nil];
[UIView setAnimationDuration:0.5];
minsImageView.transform = CGAffineTransformRotate(minsImageView.transform, minutesAngle);
hoursImageView.transform = CGAffineTransformRotate(hoursImageView.transform, hoursAngle);
[UIView commitAnimations];

其中minsImageView,hoursImageView是在XIB中设置的显示静态图像的imageViews

但它根本没有影响..

2 个答案:

答案 0 :(得分:0)

一旦你有个人时间值(听起来你已经知道了这一点),你可以根据需要定位你的手。

这意味着是时候提高你的数学技能了。我想这会给你一个开始:

一个圆圈有360度。这意味着无论时间单位得到什么,我们除以该时间单位的最大值得到一个分数,然后将结果乘以360(而不是像百分比那样100)来得到我们的度数。

所以,如果我们有23秒:

  

23/60 = 3.8333
3.8333 x 360 = 138度

现在我们知道旋转对象的度数。我会让设计师为你制作一些漂亮的手形图像并将它们放在UIImageViews中。然后,您可以围绕它们的原点旋转它们,如下所示:

secondHandImage.transform = CGAffineTransformMakeRotate(secondAngle);
祝你好运:)

编辑:让我们假设我们的手在10:10。如果我们想将它们移动到01:00,我们会做类似以下的事情。根据需要调整它。

//Calculate angles:
float minutesAngle = (0/60)*360;
float hoursAngle = (10/12)*360;

//Begin the animation block
[UIView beginAnimations:@"moveHands" context:nil];
[UIView setAnimationDuration:0.5];
minutesHand.transform = CGAffineTransformRotate(minutesHand.transform, minutesAngle);
hoursHand.transform = CGAffineTransformRotate(hoursHand.transform, hoursAngle);
[UIView commitAnimations];

答案 1 :(得分:0)

如果您正在尝试展示数字时钟,那么您的生活比以前与模拟时钟相关的答案要容易得多。

使用数字0-9创建图像并将其放入捆绑包中。在此配置中,UI中有四个UIImageView:

[] []:[] []

[] = UIImageVIew

然后,您只需更改每个插槽中的图像即可反映时间。如果您使用透明背景和高分辨率图形,您可以创建真正令人信服的效果。