Swift 快速缩放两幅重叠图像

Swift 快速缩放两幅重叠图像,swift,uiscrollview,uiimageview,pinchzoom,Swift,Uiscrollview,Uiimageview,Pinchzoom,我在scrollView中放置了一个imageView,用于收缩缩放。这是可行的,但是我无法将作为覆盖放置在基础图像上的图片缩放到相同的缩放因子 func viewForZooming(in scrollView: UIScrollView) -> UIView? { return baseImage } func scrollViewDidZoom(_ scrollView: UIScrollView) { overlayImage.transform.scaledB

我在scrollView中放置了一个imageView,用于收缩缩放。这是可行的,但是我无法将作为覆盖放置在基础图像上的图片缩放到相同的缩放因子

func viewForZooming(in scrollView: UIScrollView) -> UIView? {
    return baseImage
}

func scrollViewDidZoom(_ scrollView: UIScrollView) {

    overlayImage.transform.scaledBy(x: scrollView.zoomScale, y: scrollView.zoomScale)
}

在scrollView委托中,我只能返回一个ImageView,这对基本图像很好。我尝试实现可选的委托scrollViewDidZoom并手动缩放覆盖图像,但它不起作用。还有其他方法可以实现这一点吗?

通常情况下,滚动视图只有一个子视图,即“内容视图”。用户不会意识到它的存在;它的工作是定义滚动限制(内容大小)并作为可缩放视图发挥作用。用户在滚动视图(您的图像视图和覆盖视图)中看到的所有内容都将是内容视图的子视图,并将随之滚动和缩放。

覆盖图片是图像视图的子视图吗?不,基本图像和覆盖图像都是滚动视图的子视图。这就是问题所在。如果将覆盖设置为图像视图的子视图,它将与图像视图一起变换。或者使它们都成为某个中间内容视图的子视图,该视图将成为可缩放视图。