将 CATransform3D 转换为 NSString

Converting a CATransform3D to an NSString

我希望能够为 CATransform3D 执行类似于 NSStringFromCGAffineTransform 的操作。是否有任何内置功能?或者使用现有 API 的方法?

例如:

[[layer valueForKey:@"transform"] description]

几乎做到了,但将转换值输出为十六进制。

CATransform3DCGFloat的一个结构体,命名为m11, m12, m13, ...(右键点击Xcode中的CATransform3D然后点击"Jump to Definition") .知道了这一点,您就可以创建一个与其他 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];
}