将 UIView 转换为 CALayer
Convert UIView transform to CALayer
我有应用转换的 UIView。我试图了解如何获取 UIView 的 rotation 并将其应用于 CALayer。如果我正在打印 UIView 转换,我会得到这个:
CGAffineTransform(a: 0.977750351365919, b: -0.209771900891948, c: 0.209771900891948, d: 0.977750351365919, tx: 0.0, ty: 0.0)
不过,我不明白如何应用 旋转 变换 CALayer。
layer.transform
期待得到CATransform3D
.
你期望发生的事情确实发生了。我运行这个代码:
self.v.transform = CGAffineTransformMakeRotation(0.5)
然后这个代码:
let t = self.v.layer.transform
print(t)
它打印了这个:
CATransform3D(m11: 0.877582561890373, m12: 0.479425538604203, m13: 0.0, m14: 0.0, m21: -0.479425538604203, m22: 0.877582561890373, m23: 0.0, m24: 0.0, m31: 0.0, m32: 0.0, m33: 1.0, m34: 0.0, m41: 0.0, m42: 0.0, m43: 0.0, m44: 1.0)
这确实是最初应用于视图的仿射t运行sform 的CAT运行sform3D 形式。如果需要,您现在可以将相同的 t运行sform 应用于其他图层。
还要注意,在t运行sform应用于层的特殊情况下是仿射t运行sform,你可以直接将其作为仿射t[=26应用=]sform(使用 setAffineTransform:
方法)。所以实际上不需要获取视图层的 transform
;您可以将视图的仿射 t运行sform 直接应用于另一层。
我有应用转换的 UIView。我试图了解如何获取 UIView 的 rotation 并将其应用于 CALayer。如果我正在打印 UIView 转换,我会得到这个:
CGAffineTransform(a: 0.977750351365919, b: -0.209771900891948, c: 0.209771900891948, d: 0.977750351365919, tx: 0.0, ty: 0.0)
不过,我不明白如何应用 旋转 变换 CALayer。
layer.transform
期待得到CATransform3D
.
你期望发生的事情确实发生了。我运行这个代码:
self.v.transform = CGAffineTransformMakeRotation(0.5)
然后这个代码:
let t = self.v.layer.transform
print(t)
它打印了这个:
CATransform3D(m11: 0.877582561890373, m12: 0.479425538604203, m13: 0.0, m14: 0.0, m21: -0.479425538604203, m22: 0.877582561890373, m23: 0.0, m24: 0.0, m31: 0.0, m32: 0.0, m33: 1.0, m34: 0.0, m41: 0.0, m42: 0.0, m43: 0.0, m44: 1.0)
这确实是最初应用于视图的仿射t运行sform 的CAT运行sform3D 形式。如果需要,您现在可以将相同的 t运行sform 应用于其他图层。
还要注意,在t运行sform应用于层的特殊情况下是仿射t运行sform,你可以直接将其作为仿射t[=26应用=]sform(使用 setAffineTransform:
方法)。所以实际上不需要获取视图层的 transform
;您可以将视图的仿射 t运行sform 直接应用于另一层。