【问题标题】:UIScrollView position after changing ContentOffset更改 ContentOffset 后的 UIScrollView 位置
【发布时间】:2013-10-10 21:11:04
【问题描述】:

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

提前致谢!

【问题讨论】:

    标签: objective-c uiscrollview


    【解决方案1】:

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

    【讨论】:

    • 谢谢。我将 dest_image.superview 更改为 self.scrollview。现在图像向左偏移了大约单个 UIImageView 的宽度。
    • 不,不要将dest_image.superview 更改为self.scrollView -- 将nil 更改为self.scrollView
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-17
    相关资源
    最近更新 更多