【问题标题】:Iphone app - How to show the digital clock with current timeIphone app - 如何以当前时间显示数字时钟
【发布时间】:2011-06-15 04:03:45
【问题描述】:

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

//计算角度: 浮动分钟角度 = (0/60)*360; 浮动小时角度 = (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

但它根本没有影响..

【问题讨论】:

    标签: iphone clock


    【解决方案1】:

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

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

    一个圆有 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];
    

    【讨论】:

    • 嗨 Aurum Aquilla ,非常感谢您的回复,我也在尝试以相同的方式旋转,但根据这个我们可以像我们喜欢的那样显示时间吗? 3 个图像(秒针、分钟针和小时针图像)?如果我们首先显示一个静态时间,例如 10:10,然后单击任何按钮,我们应该将指针移动到他们的时间.. 谢谢
    • 我现在会让针设置到正确的时间。查找 NSDate 和 NSDateComponents,它们应该有你需要的。只需数小时重复一次数学函数,然后数分钟。如果你需要它,你可以做几秒钟。这听起来像是一个有趣的项目,如果您需要更多帮助,请回复评论。
    • 是的,你是对的,我可以得到当前的小时、分钟和秒,但例如假设我正在拍摄的 hrsImage 就像显示时间 10,那么我可以使用这个旋转公式将它旋转到任何时间而不改变图像,分钟和秒都一样..你明白我的疑问吗谢谢你
    • 如果您的所有时间都在工作,您所要做的就是添加动画块以旋转到当前时间:developer.apple.com/library/ios/#documentation/WindowsViews/…
    • 我们能否在不改变图像原点的情况下实现相同的效果,就像实时一样,即小时、分钟和秒从同一点开始,然后分配到相应的时间。谢谢
    【解决方案2】:

    如果你想展示一个数字时钟,那么你的生活比我之前关于模拟时钟的答案要容易得多。

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

    [][]:[][]

    [ ] = UIImageVIew

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

    【讨论】:

    • 你好对不起,我不是这个意思
    猜你喜欢
    • 2019-07-13
    • 1970-01-01
    • 2021-03-14
    • 2021-01-31
    • 1970-01-01
    • 1970-01-01
    • 2014-05-18
    • 2019-06-14
    • 2012-06-16
    相关资源
    最近更新 更多