更改ContentOffset后的UIScrollView位置

时间:2013-10-10 21:11:04

标签: objective-c uiscrollview

我正在尝试运行一个动画,该动画使用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坐标中)?

提前致谢!

1 个答案:

答案 0 :(得分:0)

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