【问题标题】:Zoom two overlayed Images swift快速缩放两个重叠的图像
【发布时间】:2019-04-16 05:20:25
【问题描述】:

我在滚动视图中放置了一个 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 并手动缩放覆盖图像,但它不起作用。还有其他方法可以实现吗?

【问题讨论】:

  • 叠加图片是不是image view的subview
  • 不,baseImage和overlayImage都是scrollView的子视图
  • 好吧,这就是问题所在。如果您将叠加层设置为图像视图的子视图,它将与图像视图一起转换。要么这样,要么让它们成为一些中间内容视图的子视图,这是可缩放视图。

标签: swift uiscrollview uiimageview pinchzoom


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-16
    • 1970-01-01
    • 2012-09-24
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多