2010-08-13 3 views
1

Un suivi de la question que j'ai posée hier.Zoom dans pagingScrollView

J'ai un scrollView de pagination qui ne fait que des pages dans l'axe des ordonnées. Au moment où je l'ai fonctionné que j'ai un tableau de UIImageViews contenant UIImages différents et le photoScroller fonctionne comme je m'attendais mais quand j'essaie d'ajouter l'imageView comme sous-vue d'un autre scrollView pour permettre le pincement et le zoom, il brise la galerie.

Par pauses, je veux dire qu'il ne charge que la première image, mais les espaces laissés là pour les autres images et pas de pincement se produit.

 

    - (void)loadView{

// Creates 4 images from the file names UIImage *img0 = [UIImage imageNamed:@"29.png"]; UIImage *img1 = [UIImage imageNamed:@"33.png"]; UIImage *img2 = [UIImage imageNamed:@"IMAG0085.JPG"]; UIImage *img3 = [UIImage imageNamed:@"DSC00081.JPG"]; NSMutableArray *imgArray = [[NSMutableArray alloc] initWithObjects:img0,img1,img2, img3, nil]; //Places images into array CGRect pagingScrollViewFrame = [[UIScreen mainScreen] bounds]; // Creates initial scrollViewFrame to be the size of the screen pagingScrollViewFrame.origin.x -= 10; //moves it 10px to the left pagingScrollViewFrame.size.width += 20; //adds 20px to the right creating a 10px blank buffer either side pagingScrollView = [[UIScrollView alloc] initWithFrame:pagingScrollViewFrame]; //Creates the pagingScrollView with the size specified with the frame pagingScrollView.pagingEnabled = YES; //allow paging pagingScrollView.backgroundColor = [UIColor blackColor]; //background black pagingScrollView.contentSize = CGSizeMake(pagingScrollViewFrame.size.width * [imgArray count], pagingScrollViewFrame.size.height); //sets the width of the scroll view depending on the number in amges in the array. self.view = pagingScrollView; //add the pagingScrollView to the main view for (int i=0; i < [imgArray count]; i++) { //loop to add the images to an imageView and then add them to the paging ScrollView /*--------Gets the image from the array and places it in an imageView------*/ UIImageView *page = [[UIImageView alloc] initWithImage: [imgArray objectAtIndex:i]]; page.frame = [[UIScreen mainScreen] bounds]; page.contentMode = UIViewContentModeScaleAspectFit; //[page.setClipsToBounds:YES]; CGRect cgRect = [[UIScreen mainScreen] bounds]; CGSize cgSize = cgRect.size; [page setFrame:CGRectMake((i*pagingScrollViewFrame.size.width)+10, 0, cgSize.width, cgSize.height)]; /*--------Creates Zooming scrollView and adds the imageView as a subView------*/ UIScrollView *zoomingScrollView = [[UIScrollView alloc] initWithFrame:cgRect]; zoomingScrollView.delegate = self; zoomingScrollView.maximumZoomScale = 4.0; zoomingScrollView.clipsToBounds = YES; [zoomingScrollView addSubview:page]; [pagingScrollView addSubview:zoomingScrollView]; }} - (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView{ NSArray *array = [scrollView subviews]; return [array lastObject]; }

Répondre

2
zoomingScrollView.frame = CGRectMake((i*pagingScrollViewFrame.size.width)+10, 0, cgSize.width, cgSize.height)]; 
page.frame = zoomingScrollView.bounds;