在滚动视图中获取对象在视图中的位置

Get object position within view within scroll view

我有这样的层次结构:

这个滚动视图也可以缩放。 当我按下这个循环视图时,我需要在循环视图的中心显示view2(我有点击手势识别器)。但是 view2 应该是碱液在 container view 因为我们还需要用 cycle view 缩放它。

我尝试用这种方法在需要显示 view2 的地方得到直角。

func getSourceRect(for cycleView: UIView) -> CGRect {
   let rectOnContainer = cycleView.convert(cycleView.frame, to: containerView)
   let rectOnScrollView = containerView.convert(rectOnContainer, to: scrollView)
        
   return rectOnScrollView
}

然后我做下一步

let sourceRect = getSourceRect(for: cycleView)
view2.center = CGPoint(x: sourceRect.midX, y: sourceRect.midY)

没用。 请帮助我理解这种行为并获得我可以展示的位置 view2

所以您希望 view2 以循环视图为中心但附加到容器视图?

如果这是真的那么

// if view2 and cycle view's parent is container view 
// then there should not be a need to transform view2's 
// coordinate space
view2.center = cycleView.center

// make sure z position is correct so that cycle view isn't obscuring
// view2's visibility.
view2.parent?.bringSubviewToFront(view2)