我正在尝试运行一个动画,该动画使用UIScrollView中项目的位置作为目标坐标。我可以使用以下代码行来定位目标位置而不更改滚动视图:
CGPoint endPoint = [dest_image.superview convertPoint:dest_image.frame.origin toView:nil];
endPoint用于动画目标,dest_image是滚动视图中的UIImageView。
在某些情况下,我需要在运行相同的动画之前偏移scrollview以显示目标UIImageView。我使用以下语句来执行此操作:
[self.scrollView setContentOffset:CGPointMake(dest_image.frame.origin.x, dest_image.frame.origin.y) animated:YES];
然而,当我尝试使用上面相同的endPoint代码获取绝对位置时,目标是在屏幕外。在更改contentOffset后,如何在滚动视图中获取目标ImageView的绝对位置(在self.view坐标中)?
提前致谢!
答案 0 :(得分:0)
当您将nil
传递给-[UIView convertPoint:toView:]
时,您正在将dest_image.frame.origin
转换为dest_image.superview.window
坐标空间。您应该通过self.scrollView
将其转换为该坐标空间。