0

在 CATransform3D 之后更改 CALayer 的锚点会产生奇怪的结果。我认为问题是,需要设置 zPosition 和 anchorPointZ

使用 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
    }
}
4

0 回答 0