Array of Images display in UIScrollview and Paging successfully but cannot properly zoom-in images in scrollview

前端 未结 2 1178
死守一世寂寞
死守一世寂寞 2021-02-11 08:33

I am working on UIScrollview with ImageArray. Scrolling and paging are working but I not able to zoom each image. My code of image Scrollview is below :-

#define I

相关标签:
2条回答
  • 2021-02-11 09:14
    #define IMAGE_FOR_ZOOM_TAG (1)
    

    Call following custom method

    -(void) setupProductImageViewContainerUI
    {
        UIWindow *window = [[[UIApplication sharedApplication] delegate] window];
    
        if(self.dimView)
        {
            for(UIView *subView in self.dimView.subviews)
                [subView removeFromSuperview];
            [self.dimView removeFromSuperview]; self.dimView = nil;
        }
    
        self.dimView = [[UIView alloc] initWithFrame:window.bounds];
        self.dimView.backgroundColor = [[UIColor blackColor] colorWithAlphaComponent:.5];
        self.dimView.userInteractionEnabled = YES;
        [window addSubview:self.dimView];
    
        self.imgContainerView = [[UIView alloc] init];
        self.imgContainerView.frame = CGRectMake(0, 0, window.frame.size.width, window.frame.size.height);
        self.imgContainerView.backgroundColor = [UIColor whiteColor];
        [self.dimView addSubview:self.imgContainerView];
    
        UIScrollView *mainScrollView = [[UIScrollView alloc] initWithFrame:window.bounds];
        mainScrollView.pagingEnabled = YES;
        mainScrollView.delegate = self;
        mainScrollView.showsHorizontalScrollIndicator = NO;
        mainScrollView.showsVerticalScrollIndicator = NO;
        [self.imgContainerView addSubview:mainScrollView];
        CGRect innerScrollFrame = mainScrollView.bounds;
    
        IndexOfSlidingPhoto = 0;
        for(int i = 0 ; i < listOfImages.count; i++)
        {
            UIImage *imgProduct = [GeneralClass getImageForSreenFromScreenTable:@"" orCustomTable:@"" OrDefaultImga:[listOfImages objectAtIndex:i]];
            UIImageView *imageForZooming = [[UIImageView alloc] initWithImage:imgProduct];
            imageForZooming.frame = CGRectMake(0, 0, window.frame.size.width, window.frame.size.height);
            imageForZooming.tag = IMAGE_FOR_ZOOM_TAG;
            imageForZooming.contentMode = UIViewContentModeScaleAspectFit;
    
            UIScrollView *pageScrollView = [[UIScrollView alloc] initWithFrame:innerScrollFrame];
            pageScrollView.minimumZoomScale = 1.0f;
            pageScrollView.maximumZoomScale = 20;
            pageScrollView.zoomScale = 1.0f;
            pageScrollView.contentSize = imageForZooming.bounds.size;
            pageScrollView.delegate = self;
            pageScrollView.showsHorizontalScrollIndicator = NO;
            pageScrollView.showsVerticalScrollIndicator = NO;
            [pageScrollView addSubview:imageForZooming];        
            [mainScrollView addSubview:pageScrollView];
    
            if (i < listOfImages.count -1)
                innerScrollFrame.origin.x += innerScrollFrame.size.width;
    
        mainScrollView.contentSize = CGSizeMake(innerScrollFrame.origin.x + innerScrollFrame.size.width, mainScrollView.bounds.size.height);
    
    
        [window bringSubviewToFront:self.dimView];
    }
    
    #pragma Mark -
    #pragma Mark - UIScrollView Delegate Methods
    
    - (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
    {
        return [scrollView viewWithTag:IMAGE_FOR_ZOOM_TAG];
    }
    
    0 讨论(0)
  • 2021-02-11 09:21
    for ( NSString *image in photos )
        {
           UIImage *images = [photos objectAtIndex:i];
           imageView = [[UIImageView alloc] initWithImage:images];
           imageView.contentMode = UIViewContentModeScaleAspectFit;
           imageView.clipsToBounds = YES;
           imageView.tag = 1;
    
           UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake( IMAGE_WIDTH * i++, 0, IMAGE_WIDTH, IMAGE_HEIGHT)];
           scrollView.delegate = self;
           scrollView.maximumZoomScale = 3.0f
           imageView.frame = scrollView.bounds;
           [scrollView addSubview:imageView];
           [imageView release];
    
           [self.scrollViewimages addSubview:scrollView];
    
         }
    

    And Implement the delegate method in UIScrollViewDelegate

    - (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView {
        return [scrollView viewWithTag:1];
    }
    
    0 讨论(0)
提交回复
热议问题