Swiping Images with Page Control in Iphone

27,799

Solution 1

Check whether you have set the delegate of the scroll view to the ViewController

And you have just set the pageControlBeingUsed to YES or NO and you have not used it anywhere in the ViewController

Solution 2

I learned page control and scrollView from this tutorial, its very clearly written, hope it helps you http://www.raywenderlich.com/10518/how-to-use-uiscrollview-to-scroll-and-zoom-content

Share:
27,799
lakshmen
Author by

lakshmen

Loves Programming and very keen in learning new things... NSMutableArray *skills = @[ @"C++", @"Python", @"Objective-C", @"Matlab", @"VBA", @"R", ]; Any questions regarding the codes, do feel free to contact me. My Email address can be obtained using this code in MATLAB: s = char(double([99 110 110 108 97 107 115 104 109 101 110 95 50 48 48 48 64 121 97 104 111 111 46 99 111 109])) clc; disp(s); disp(' '); You can connect with me in Linkedin

Updated on October 25, 2020

Comments

  • lakshmen
    lakshmen over 3 years

    I am trying to make practice app where i can scroll images with page control. I am able to scroll images and able to include the page control. But the problem i face is i am not able to interlink the two. Meaning to say when I scroll the images, the page control is not affected and when i change the page control, the scrolling of the images is unaffected.

    I have referred to this: http://www.iosdevnotes.com/2011/03/uiscrollview-paging/ for the scrolling with page control.

    Viewcontroller.h

    #import <UIKit/UIKit.h>
    
    @interface ViewController : UIViewController <UIScrollViewDelegate>{
        UIScrollView *scrollView;
        UIPageControl *pageControl;
    
        BOOL pageControlBeingUsed;
    }
    
    @property (nonatomic, retain) IBOutlet UIScrollView *scrollView;
    @property (nonatomic, retain) IBOutlet UIPageControl *pageControl;
    
    - (IBAction)changePage;
    
    @end
    

    Viewcontroller.m

    #import "ViewController.h"
    
    @interface ViewController ()
    
    @end
    
    @implementation ViewController
    
    @synthesize scrollView,pageControl;
    
    - (void)scrollViewDidScroll:(UIScrollView *)sender {
        if (!pageControlBeingUsed) {
            // Switch the indicator when more than 50% of the previous/next page is visible
            CGFloat pageWidth = self.scrollView.frame.size.width;
            int page = floor((self.scrollView.contentOffset.x - pageWidth / 2) / pageWidth) + 1;
            self.pageControl.currentPage = page;
        }
    }
    - (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView {
        pageControlBeingUsed = NO;
    }
    
    - (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
        pageControlBeingUsed = NO;
    }
    - (void)viewDidLoad
    {
        [super viewDidLoad];
        NSArray *images = [[NSArray alloc] initWithObjects:[UIImage imageNamed:@"1.jpeg"],[UIImage imageNamed:@"2.jpeg"],[UIImage imageNamed:@"3.jpeg" ], nil];
    
        self.scrollView.contentSize = CGSizeMake(self.scrollView.frame.size.width * images.count, self.scrollView.frame.size.height);
    
        for (int i = 0; i < images.count; i++) {
            CGRect frame;
            frame.origin.x = self.scrollView.frame.size.width * i;
            frame.origin.y = 0;
            frame.size = self.scrollView.frame.size;
            UIImageView* imgView = [[UIImageView alloc] init];
            imgView.image = [images objectAtIndex:i];
            imgView.frame = frame;
            [scrollView addSubview:imgView];
        }
    
        self.pageControl.currentPage = 0;
        self.pageControl.numberOfPages = images.count;
    
    }
    
    - (void)didReceiveMemoryWarning
    {
        [super didReceiveMemoryWarning];
        // Dispose of any resources that can be recreated.
    }
    - (void)viewDidUnload {
        // Release any retained subviews of the main view.
        // e.g. self.myOutlet = nil;
        self.scrollView = nil;
        self.pageControl = nil;
    }
    
    - (IBAction)changePage{
            // update the scroll view to the appropriate page
            CGRect frame;
            frame.origin.x = self.scrollView.frame.size.width * self.pageControl.currentPage;
            frame.origin.y = 0;
            frame.size = self.scrollView.frame.size;
            [self.scrollView scrollRectToVisible:frame animated:YES];
            pageControlBeingUsed = YES;
    }
    
    @end
    

    Need some guidance on this... Thanks..

  • lakshmen
    lakshmen over 11 years
    i created the new practice app following the tutorial and it doesn't work still...
  • lakshmen
    lakshmen over 11 years
    where to use it? can give me a idea of where to use it?
  • lakshmen
    lakshmen over 11 years
    changed the code now... included the pageControlBeingUsed in the scrollViewDidScroll function.. still no difference...
  • lakshmen
    lakshmen over 11 years
  • Yalamandarao
    Yalamandarao about 9 years
    Is it possible to create circular swipe?.... how to do circular swipe by using above code....Do you have any idea?
  • vignesh kumar
    vignesh kumar about 9 years
    @Singapore did u mean moving your finger following a circular path to achieve the above said