启用放大启用分页启用和滚动的uiscrollview

问题描述:

我有一个uiscrollview,我加载了一个图像数组,以便我可以滚动浏览图片的效果类似于IOS中的照片效果。我使用此代码:启用放大启用分页启用和滚动的uiscrollview

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES); 
    NSString *path = [paths objectAtIndex:0]; 
    NSString *imageFilePath = [path stringByAppendingPathComponent:@"newPics"]; 
    fileExists = [[NSFileManager defaultManager] fileExistsAtPath:imageFilePath]; 
    if(fileExists){ 

     imgs=[[NSMutableArray alloc]init]; 


    [imgs addObject:[UIImage imageWithContentsOfFile:[path stringByAppendingPathComponent:@"newPics/pic1.png"]]]; 
    [imgs addObject:[UIImage imageWithContentsOfFile:[path stringByAppendingPathComponent:@"newPics/pic2.png"]]]; 
    [imgs addObject:[UIImage imageWithContentsOfFile:[path stringByAppendingPathComponent:@"newPics/pic3.png"]]]; 
    [imgs addObject:[UIImage imageWithContentsOfFile:[path stringByAppendingPathComponent:@"newPics/pic4.png"]]]; 


    CGSize imageSize; 
    imageSize.height = 648; 
    imageSize.width = 927; 
    self.scroll1.frame = CGRectMake(0,0,imageSize.width,imageSize.height); 

    self.scroll1.contentSize = CGSizeMake(imageSize.width * imgs.count, imageSize.height); 
    self.scroll1.minimumZoomScale=1.0; 
    self.scroll1.maximumZoomScale=3.0; 
    self.scroll1.pagingEnabled = YES; 


    self.scroll1.delegate=self; 

    CGFloat xPos = 0.0; 

    for (UIImage *image in imgs) { 
     imageView = [[UIImageView alloc] initWithImage:image]; 
     imageView.frame = CGRectMake(xPos, 0.0, imageSize.width, imageSize.height); 
     [self.scroll1 addSubview:imageView]; 
     xPos += imageSize.width; 

    } 


    } 

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView 
{ 
    int positionScrollPrim = scrollView.contentOffset.x; 

    int positionScroll = positionScrollPrim/927 ; 

    imageView = [[UIImageView alloc] initWithImage:[imgs objectAtIndex:positionScroll]]; 
    //UIImage *tmep = [imgs objectAtIndex:1]; 

    return imageView; 
} 

我不能达到正确的结果,相反,我得到了一堆奇怪的行为,如不正确缩放和没有当我试图放大更多滚动。我想我的问题是在viewForZoomingInScrollView部分,这就是为什么我试图用上面的代码解决它。但我不能让它工作。我错过了什么?

+0

你不应该在viewForZoomingInScrollView中返回一个新的实例,你应该从你的scrollView中返回现有的子视图 – fnc12 2015-04-02 07:17:58

常用的方法是使用两个滚动视图:外部滚动浏览图像,每个图像都包含在另一个负责缩放的滚动视图中。

+0

我现在就试试看吧谢谢你的回复 – 2014-10-09 08:49:42

+0

你能提供一个代码片段来知道如何处理它呢?\ – 2014-10-09 08:54:51

+0

我试过了,但它没有奏效......要么我迷路了,要么不能运作,你能帮忙吗? – 2014-10-09 09:12:02