如何在应用CATransform3D后找到UIView的X,Y和旋转值

时间:2017-08-28 11:13:04

标签: ios swift calayer catransform3d

我的屏幕上有一个UIView。我根据用户使用点按和旋转手势点击移动,将layer.transform应用于该视图,并进行平移和旋转。最后我想分别用旋转检索最终的x和y位置。在这里找不到任何这样的帖子来从变换中获取这些信息。任何人都可以帮忙吗?

以下是用于应用转换的代码。

var transform = CATransform3DIdentity
transform = CATransform3DTranslate(transform, displacementX, displacementY, 1.0)
transform = CATransform3DRotate(transform, gesture.rotation, 0, 0, 1.0)

self.currentItem.imageView.layer.transform = transform

1 个答案:

答案 0 :(得分:1)

请参阅以下代码,

申请转化,

let degrees = 90.0
let radians = CGFloat(degrees * Double.pi / 180)
sampleView.layer.transform = CATransform3DMakeRotation(radians, 0.0, 0.0, 1.0)

要获得变换后的旋转角度,

let radiansFromSampleView = atan2(sampleView.transform.b, sampleView.transform.a)
let DegreesFromRadiansOFSampleView = CGFloat(180 * Double(radiansFromSampleView) / Double.pi)

对于x和y位置,您甚至可以在转换后直接从视图的帧中获取。

希望这会有所帮助。