在 CATransform3D 之后更改 CALayer 的锚点会产生奇怪的结果。我认为问题是,需要设置 zPosition 和 anchorPointZ
Transforming a rectangle image into a quadrilateral using a CATransform3D
在此横断之后,我需要使用手势移动、旋转和缩放。 那个时候我需要改变锚点来查看 如果尝试使用以下代码添加锚点,视图位置和外观会突然改变。
extension UIView {
func setanchorPoint(_ point: CGPoint) {
var newPoint = CGPoint(x: bounds.size.width * point.x,y: bounds.size.height * point.y)
var oldPoint = CGPoint(x: bounds.size.width * layer.anchorPoint.x,y: bounds.size.height * layer.anchorPoint.y);
newPoint = newPoint.applying(transform)
oldPoint = oldPoint.applying(transform)
var position = layer.position
position.x -= oldPoint.x
position.x += newPoint.x
position.y -= oldPoint.y
position.y += newPoint.y
layer.position = position
layer.anchorPoint = point
}
}