相关疑难解决方法(0)

无限水平滚动UIScrollView

我有一个UIScrollView,其内容大小为1200x480.我有一些图像视图,其宽度加起来600.当向右滚动时,我只是增加内容大小并设置偏移量,以使一切顺利(然后我想添加其他图像,但这并不重要马上).所以基本上,当前在视口中的图像保留在左侧的某个位置,最终将从超级视图中删除.

现在,当我向左滚动时,我遇到的问题.我所做的是将图像移动到内容大小的末尾(因此为每个图像视图的origin.x添加600),然后相应地设置内容偏移.当手指在屏幕上并且用户拖动时(scrollView.isTracking = YES),它可以工作.当用户向左滚动并放开(scrollView.isTracking = NO)时,图像视图最终向右移动太快并且几乎立即消失.有没有人知道我怎么能让图像移动得很好而且不会消失,即使用户没有手动拖动视图并且已经放开了?

这是我水平拖动的代码:

-(void) scrollViewDidScroll:(UIScrollView *)scrollView {
    CGPoint offset = self.scrollView.contentOffset;
    CGSize size = self.scrollView.contentSize;

    CGPoint newXY = CGPointMake(size.width-600, size.height-480);

    // this bit here allows scrolling towards the right
    if (offset.x > size.width - 320) {
        [self.scrollView setContentSize:CGSizeMake(size.width+320, size.height)];
        [self.scrollView setContentOffset: offset];
    }

    // and this is where my problem is:
    if (offset.x < 0) {
        for (UIImageView *imageView in self.scrollView.subviews) {
            CGRect frame = imageView.frame;
            [imageView setFrame:CGRectMake
                (frame.origin.x+newXY.x, frame.origin.y, 200, frame.size.height)];
        }
        [self.scrollView setContentOffset:CGPointMake(newXY.x+offset.x, offset.y)]; …
Run Code Online (Sandbox Code Playgroud)

objective-c uiscrollview infinite-scroll ios5

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

infinite-scroll ×1

ios5 ×1

objective-c ×1

uiscrollview ×1