在 CATransform3D 之后更改 CALayer 的锚点会产生奇怪的结果。我认为问题是,需要设置 zPosition 和 anchorPointZ
在此横断之后,我需要使用手势移动、旋转和缩放。如果尝试使用下面的代码视图位置和外观突然变化来添加锚点,那我需要更改锚点来查看。
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
}
}