根据 UIScrollView 的中心点在 UIScrollView 中找到 CGPoint of View

Find CGPoint of view inside UIScrollView depending of UIScrollView's center point

我有一个 UIScrollView,里面有一个 UIImageView。主要目标是在 de UIScrollView 中移动 UIImageView,如拖动、缩放等。

让我们假设滚动视图的框架是 100x100。 UIImageView 的大小为 250x100。所以,我们可以在不缩放的情况下从左向右拖动,放大时可以从上向下拖动。

我的问题是:如何让 UIImageView 的 CGPoint 等同于滚动视图的中心 CGPoint?

希望以下是对场景的有用描述:

非常感谢你们的帮助!

使用UIViewconvert方法将点从滚动视图转换为图像视图:

let imageViewPoint = scrollView.convert(CGPoint(x: 50, y: 50), to: imageView)

感谢 rmaddy 的帮助。

解决方法如下:

//FYI: focusPoint.scale is the zoomScale of the UIScrollView.
let originVisible = scrollView.contentOffset
let convertedPoint = scrollView.convert(originVisible, to: imageView).scaledBy(scale: focusPoint.scale)
let imageViewPoint = CGPoint(x: convertedPoint.x + scrollView.center.x,
                             y: convertedPoint.y + scrollView.center.y)

extension CGPoint {
    func scaledBy(scale: CGFloat) -> CGPoint {
        return CGPoint(x: x * scale, y: y * scale)
    }
}