Swift3 如何将CAShapeLayer缩放到不同的UIImageView

Swift3 如何将CAShapeLayer缩放到不同的UIImageView,swift3,uibezierpath,cashapelayer,Swift3,Uibezierpath,Cashapelayer,我有一个UIImageView,你可以点击它,它会画一个圆圈。我将圆的位置存储在一组字典中。这允许我“重放”圆圈的绘制。但是,当UIImageView与原始视图的大小不同时,圆不会缩放到新的UIImageView 我怎样才能使圆圈按比例缩放?出于演示目的,上图是用于输入的UIImageView的大小,第二幅是用于回放的大小 输入圆圈: 重放圆圈(圆圈应位于蓝色UIImageView中 我可以用CATTransferm3dMakeScale解决这个问题,只要我保持原始图像的原始纵横比,效果就很

我有一个UIImageView,你可以点击它,它会画一个圆圈。我将圆的位置存储在一组字典中。这允许我“重放”圆圈的绘制。但是,当UIImageView与原始视图的大小不同时,圆不会缩放到新的UIImageView

我怎样才能使圆圈按比例缩放?出于演示目的,上图是用于输入的UIImageView的大小,第二幅是用于回放的大小

输入圆圈:

重放圆圈(圆圈应位于蓝色UIImageView中


我可以用
CATTransferm3dMakeScale
解决这个问题,只要我保持原始图像的原始纵横比,效果就很好

    let width = yellowImageView.frame.width / blueImageView.frame.width
    let height = yellowImageView.frame.height / blueImageView.frame.height

    shapeLayer.transform = CATransform3DMakeScale(height, width, 1.0)

    view.layer.addSublayer(shapeLayer)
    let width = yellowImageView.frame.width / blueImageView.frame.width
    let height = yellowImageView.frame.height / blueImageView.frame.height

    shapeLayer.transform = CATransform3DMakeScale(height, width, 1.0)

    view.layer.addSublayer(shapeLayer)