使用 CATransform3D 将矩形图像转换为四边形后如何设置锚点和位置

在 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
    }
}
dongyafei123 回答:使用 CATransform3D 将矩形图像转换为四边形后如何设置锚点和位置

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/729969.html

大家都在问