0

我正在尝试运行一个动画,它使用 UIScrollView 中项目的位置作为目标坐标。通过使用以下代码行,我可以在不更改滚动视图的情况下定位目标位置:

CGPoint endPoint = [dest_image.superview convertPoint:dest_image.frame.origin toView:nil];

endPoint 用于动画目的地,dest_image 是滚动视图中的 UIImageView。

在某些情况下,我需要在运行相同的动画之前偏移滚动视图以显示目标 UIImageView。我使用以下语句来做到这一点:

[self.scrollView setContentOffset:CGPointMake(dest_image.frame.origin.x, dest_image.frame.origin.y) animated:YES];

但是,当我尝试使用上面相同的 endPoint 代码获取绝对位置时,目标在屏幕外。更改 contentOffset 后,如何在滚动视图中获取目标 ImageView 的绝对位置(在 self.view 坐标中)?

提前致谢!

4

1 回答 1

0

当您传递nil-[UIView convertPoint:toView:]您时,您将转换dest_image.frame.origindest_image.superview.window坐标空间。您应该通过self.scrollView将其转换为该坐标空间。

于 2013-10-11T12:35:57.597 回答