1
-(void)viewDidLoad 
{
    [super viewDidLoad];

    // add the last image (image4) into the first position
    [self addImageWithName:@"image4.jpg" atPosition:0];

    // add all of the images to the scroll view
    for (int i = 1; i < 5; i++)
    {
        [self addImageWithName:[NSString stringWithFormat:@"image%i.jpg",i] atPosition:i];
    }

    // add the first image (image1) into the last position
    [self addImageWithName:@"image1.jpg" atPosition:5];

    scrollView.contentSize = CGSizeMake(320, 2496);    
    [scrollView scrollRectToVisible:CGRectMake(0,416,320,416) animated:NO]; 
}

- (void)addImageWithName:(NSString*)imageString atPosition:(int)position {
    // add image to scroll view
    UIImage *image = [UIImage imageNamed:imageString];
    UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
    imageView.frame = CGRectMake(0,position*416,320, 416);
    [scrollView addSubview:imageView];
    [imageView release];
}

- (void)scrollViewDidEndDecelerating:(UIScrollView *)sender {    
    NSLog(@"%f",scrollView.contentOffset.y);
    // The key is repositioning without animation      
    if (scrollView.contentOffset.y == 0) {         
        // user is scrolling to the left from image 1 to image 4         
        // reposition offset to show image 4 that is on the right in the scroll view         
        [scrollView scrollRectToVisible:CGRectMake(0,1664,320,416) animated:NO];     
    }    
    else if (scrollView.contentOffset.y == 2080) {         
        // user is scrolling to the right from image 4 to image 1        
        // reposition offset to show image 1 that is on the left in the scroll view         
        [scrollView scrollRectToVisible:CGRectMake(0,416,320,416) animated:NO];         
    } 
}
4

1 回答 1

0

我不想重复我的答案,在下面的页面中,我已经写了如何创建一个带有 3 个图像的滚动视图,可以在两个水平方向上无限滚动:

https://stackoverflow.com/a/12856174/936957

如果您更准确地描述您的问题以及您想要实现的目标,人们可以更轻松地提供帮助。

于 2012-11-29T07:56:24.710 回答