CGAffineTransform - 将图像锚定到基线?

CGAffineTransform - anchor image to baseline?

我是 expanding/reducing 完美使用 CGAffineTransform 的图像,但它会围绕图像的中心点发生变化。我想保持它 fixed/anchored 到基线?这可能吗?图像显示在 UIImageView 中。

    UIView.animate(withDuration: 0.0, animations: {
        // Sunrise
        let multiplierSunrise = CGFloat(self.sunriseTime/self.sunriseMax)
        var transformSunrise = CGAffineTransform.identity
        transformSunrise = transformSunrise.translatedBy(x: 0, y: (self.imageHeight*(1-(multiplierSunrise/2))-(self.imageHeight/2)))
        transformSunrise = transformSunrise.scaledBy(x: 1, y: 1*multiplierSunrise )
        self.sunriseView.transform = transformSunrise
    })

变换应用在视图层的锚点周围。默认情况下这是图层的边界中心,但您可以移动它,以百分比形式描述所需的锚点。所以如果你想在视图底部周围应用变换,你可以说:

self.sunriseView.layer.anchorPoint = CGPoint(x:0.5, y:1)

不过,你这么一说,景色本身就动了!为防止这种情况,还要移动视图的 center 以进行补偿:

self.sunriseView.center.y += self.sunriseView.bounds.height/2
self.sunriseView.layer.anchorPoint = CGPoint(x:0.5, y:1)

这是一个例子,完成后,我继续应用 y 轴比例变换。如您所见,我们保持底部稳定: