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