【发布时间】:2015-03-18 00:49:57
【问题描述】:
我希望能够为CATransform3D 做类似于NSStringFromCGAffineTransform 的事情。是否有任何内置功能?或者使用现有 API 的方式?
例如:
[[layer valueForKey:@"transform"] description]
几乎可以,但将转换值输出为十六进制。
【问题讨论】:
标签: cocoa calayer catransform3d
我希望能够为CATransform3D 做类似于NSStringFromCGAffineTransform 的事情。是否有任何内置功能?或者使用现有 API 的方式?
例如:
[[layer valueForKey:@"transform"] description]
几乎可以,但将转换值输出为十六进制。
【问题讨论】:
标签: cocoa calayer catransform3d
CATransform3D是CGFloats的结构体,命名为m11, m12, m13, ...(在Xcode中右键CATransform3D并点击“跳转到定义”)。知道了这一点,您就可以创建一个行为方式与其他 NSStringFromX() 函数类似的函数。
NSString *NSStringFromCATransform3D(CATransform3D transform) {
return [NSString stringWithFormat:@"[%f, %f, %f, %f, %f, %f, %f, %f, %f, %f, %f, %f, %f, %f, %f, %f]",
transform.m11, transform.m12, transform.m13, transform.m14,
transform.m21, transform.m22, transform.m23, transform.m24,
transform.m31, transform.m32, transform.m33, transform.m34,
transform.m41, transform.m42, transform.m43, transform.m44];
}
【讨论】: