ken*_*ytm 91
从技术上讲,你不能,因为变换可以包括一个倾斜操作,它将图像转换为平行四边形,并且不再定义旋转角度.
无论如何,因为旋转矩阵产生
cos(x) sin(x) 0
-sin(x) cos(x) 0
0 0 1
Run Code Online (Sandbox Code Playgroud)
你可以恢复角度
return atan2(transform.b, transform.a);
Run Code Online (Sandbox Code Playgroud)
sch*_*sch 36
您可以像这样轻松获得旋转角度:
CGFloat angle = [(NSNumber *)[view valueForKeyPath:@"layer.transform.rotation.z"] floatValue];
Run Code Online (Sandbox Code Playgroud)
例如:
view.transform = CGAffineTransformMakeRotation(0.02);
CGFloat angle = [(NSNumber *)[view valueForKeyPath:@"layer.transform.rotation.z"] floatValue];
NSLog(@"%f", angle); // 0.020000
Run Code Online (Sandbox Code Playgroud)
从文档:
Core Animation扩展了键值编码协议,允许通过关键路径获取和设置图层CATransform3D矩阵的公共值.表4描述了层的转换和sublayerTransform属性是键值编码和遵守观察的关键路径
归档时间: |
|
查看次数: |
26991 次 |
最近记录: |