我的屏幕上有一个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
答案 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位置,您甚至可以在转换后直接从视图的帧中获取。
希望这会有所帮助。