Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

arnieterm

macrumors regular
Original poster
Aug 28, 2008
201
0
I am developing an iphone application just like iPhone Photo application. Like iPhone Photo application i want to implement the swipe gesture to navigate through all images and also pinch zoom gesture to zoom in/out an individual image.
I am able to implement pinch zoom in/out by adding the UImageView in a UIScrollView and then implementing following delegate:

Code:
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView {
    return imgV;  // Same, original UIImageView used earlier
}

Below is my Views arrangement:

UIView
---UIScrollView
---UIImageView

It's Working perfect.

I am also able to implement the slide gesture to navigate through images by implementing following code separately:

Code:
- (void)applicationDidFinishLaunching:(UIApplication *)application{
	scrollView.contentSize = CGSizeMake(scrollView.frame.size.width * kNumberOfImages, scrollView.frame.size.height);
}

- (void)scrollViewDidScroll:(UIScrollView *)sender{
	CGFloat pageWidth = scrollView.frame.size.width;
	int page = floor((scrollView.contentOffset.x - pageWidth / 2) / pageWidth) + 1;
    pageControl.currentPage = page;

    // load the visible page and the page on either side of it (to avoid flashes when the user starts scrolling)
    [self loadScrollViewWithPage:page - 1];
    [self loadScrollViewWithPage:page];
    [self loadScrollViewWithPage:page + 1];
}

- (void)loadScrollViewWithPage:(int)page {
    if (page < 0) return;
    if (page >= kNumberOfPages) return;

    // replace the placeholder if necessary
    MyViewController *controller = [viewControllers objectAtIndex:page];
    if ((NSNull *)controller == [NSNull null]) {
        controller =
		[[MyViewController alloc] initWithPageNumber:page];
        [viewControllers replaceObjectAtIndex:page withObject:controller];
        [controller release];
    }

    // add the controller's view to the scroll view
    if (nil == controller.view.superview) {
        CGRect frame = scrollView.frame;
        frame.origin.x = frame.size.width * page;
        frame.origin.y = 0;
        controller.view.frame = frame;
        [scrollView addSubview:controller.view];
    }
}

Below is my Views arrangement in this situation:

UIView
---UIScrollView
---MyView

arrangement for MyView:
UIView
---UIScrollView
---UIImageView


Now when i try to combine both solutions, so that it would behave like iPhone Photo app then I am able to have slide gesture but i can not have pinch zoom. Please help, It's Urgent.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.