在滚动视图中获取对象在视图中的位置
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)
我有这样的层次结构:
- 滚动视图
- ---容器视图
- -----循环视图
这个滚动视图也可以缩放。 当我按下这个循环视图时,我需要在循环视图的中心显示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)