好的标题可能很含糊,但这是我想做的。
我的应用程序有两个轮子。用户可以旋转外轮以匹配内轮中的值,从而根据所选值显示某些结果。
现在,我可以通过设置变换属性来旋转图像罚款。但是一旦转变,我怎么知道外轮上选择了什么?
一种方法是获取转换属性并操纵它。
但是如何???
我不会旋转图像本身,而是映像层的层。然后,您可以始终访问包含图像的图像视图层的转换属性。
好,这是一些代码。首先,您必须获得UIImageView
的层CALayer* layer = [self.layer presentationLayer];
然后,您可以读取类似键盘的图层所需的任何旋转。
float rotationAngle = [[layer valueForKeyPath:@"transform.rotation.z"] floatValue];
让我知道这是否没有帮助。还有另一种获得旋转角度的方法。但这有点复杂;)
您可以跟踪您以弧度或程度(适当的)旋转图像的数量,然后进行一些触发,然后弄清楚它指向的位置。从仿射变换中提取旋转非常困难。
编辑:以下是一些未经测试的片段,可以让您入门:
在您的标题中:
CGFloat _userRotation;
当您旋转旋转时,假设rotation
是用户旋转数量的CGFloat,则是弧度:
myView.transform = CGAffineTransformMakeRotation(rotation);
_userRotation = rotation;
然后,您需要做的就是使用一些触发物来找出您指向的图像。我不能为您提供示例代码,因为数学取决于您要做的事情,但是当前的旋转将在_userRotation
中可用。
我不确定这是您要问的。它有帮助吗?