在钟面上旋转 UILabel

Posted

技术标签:

【中文标题】在钟面上旋转 UILabel【英文标题】:Rotate UILabel On Clockface 【发布时间】:2015-07-09 13:59:52 【问题描述】:

是否可以围绕表盘旋转 UILabel 或类似的东西?

例如,如果我有一个从 1 到 12 的数字数组,它将以循环方式呈现。但是,通过触摸事件,我可以在时钟的表面上移动标签,即我可以向右移动 12 直到它到达 6,而所有其他数字都保留在它们的位置上。

我考虑过 UIPicker,但它遵循“从上到下”的方法。我需要一个解决方案,在保持其他标签顺序的同时围绕一个点移动标签。

【问题讨论】:

【参考方案1】:

这只是一个相反的旋转变换的问题。旋转钟面,同时将所有子视图编号沿相反方向旋转相同的量。

【讨论】:

【参考方案2】:

推荐:

1 没有大小手柄的时钟(作为图像)在 ImageView 中设置。

2 另外两个图像视图,一个用于小手,另一个用于大手。

3 根据需要使用以下代码旋转手(UIImageView)。

#define DEGREES_TO_RADIANS(angle) ((angle) / 180.0 * M_PI)

UIImageView *smallHand = set your smallHand image view here;
UIImageView *bigHand = set your bigHand image view here;


// Small hand
CGAffineTransform smallHandTransform = CGAffineTransformRotate(self.transform, (DEGREES_TO_RADIANS(1)));

// Big hand
CGAffineTransform bigHandTransform = CGAffineTransformRotate(self.transform, (DEGREES_TO_RADIANS(1*0.60)));


// Apply rotation
smallHand.transform = smallHandTransform;
bigHand.transform = bigHandTransform;

我知道这个问题是旋转标签,如果您需要它,请在 UILabel 上应用此转换。

我希望有人会利用这个想法。祝你好运:)

Here is the example project

【讨论】:

以上是关于在钟面上旋转 UILabel的主要内容,如果未能解决你的问题,请参考以下文章

分针与时针在啥时候成直角

12小时计时法跟24小时计时法有啥不同

KMP最小表示法NCPC 2014 H clock pictures

WUST Online Judge - 2147: 与时间赛跑

如何使用按钮在一个轴上停止旋转并在新轴上开始旋转?

在旋转视图上调整拖动手势