滚动时在滚动视图中跟踪图像的位置

时间:2012-01-10 08:54:00

标签: iphone uiscrollview

我设置的图像(动态创建)放在我的UIScrolView中的一行中。我想跟踪位置的变化(即我想得到所有图像的x,y位置)滚动....

我尝试过的事情:

1.我将所有图像存储在一个数组中 然后我在这个代表中打印了图像的位置

-(void)scrollViewDidScroll:(UIScrollView *)scrollView

但我不能得到我想要的结果......而不是我得到我指定的图像的位置.....我怎么能摆脱这个????

由于

1 个答案:

答案 0 :(得分:2)

我不完全确定我理解您对图像位置的含义,但我认为您需要contentOffset UIScrollView属性。如果您从图像的帧偏移量中减去xy的值,那么您将有效地获得图像相对于UIScrollView父级的位置。

编辑:这里有一些代码可以帮助您入门:

- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
    CGPoint offset = scrollView.contentOffset;
    for (UIView *view in scrollView.subviews) {
        CGPoint thisOrigin = view.frame.origin;
        thisOrigin.x -= offset.x;
        thisOrigin.y -= offset.y;
        NSLog(@"thisOrigin = %@", NSStringFromCGPoint(thisOrigin));
    }
}

这将获得UIScrollView边界坐标系中图像的原点。如果您只想在UIScrollView内容的坐标系内获得图像的原点,那么您只需要view.frame.origin本身。但我不认为这就是你想要的,因为你说“但我无法得到我想要的结果......而不是我得到我指定的图像的位置”。