// .h file
#import <UIKit/UIKit.h>
@interface PageControlSampleViewController : UIViewController <UIScrollViewDelegate> {
UIScrollView *scrollView;
UIPageControl *pageControl;
BOOL pageControlUsed;
UIImageView *imageView;
}
UIPageControl *pageControl;
BOOL pageControlUsed;
UIImageView *imageView;
}
@property (nonatomic, retain) IBOutlet UIScrollView *scrollView;
@property (nonatomic, retain) IBOutlet UIPageControl *pageControl;
@property (nonatomic, readwrite) BOOL pageControlUsed;
@property (nonatomic, retain) UIImageView *imageView;
@property (nonatomic, retain) IBOutlet UIPageControl *pageControl;
@property (nonatomic, readwrite) BOOL pageControlUsed;
@property (nonatomic, retain) UIImageView *imageView;
- (IBAction)changePage:(id)sender;
@end
// . m file
#import “PageControlSampleViewController.h”
@implementation PageControlSampleViewController
@synthesize scrollView;
@synthesize pageControl;
@synthesize pageControlUsed;
@synthesize imageView;
@synthesize pageControl;
@synthesize pageControlUsed;
@synthesize imageView;
- (void)viewDidLoad
{
[super viewDidLoad];
{
[super viewDidLoad];
pageControlUsed = NO;
self.scrollView.delegate = self;
self.scrollView.delegate = self;
NSArray *colors = [NSArray arrayWithObjects:[UIColor redColor],[UIColor greenColor],[UIColor cyanColor], nil];
for (int i=0; i<[colors count]; i++) {
CGRect frame;
frame.origin.x = self.scrollView.frame.size.width * i;
frame.origin.y = 0;
frame.size = self.scrollView.frame.size;
frame.origin.x = self.scrollView.frame.size.width * i;
frame.origin.y = 0;
frame.size = self.scrollView.frame.size;
UIView *subView = [[UIView alloc]initWithFrame:frame];
[subView setBackgroundColor:[colors objectAtIndex:i]];
[subView setBackgroundColor:[colors objectAtIndex:i]];
//add imageview
imageView = [[UIImageView alloc]init];
CGRect imageFrame;
imageFrame.origin.x = 10;
imageFrame.origin.y = 10;
imageFrame.size.width = 250;
imageFrame.size.height = 250;
imageView.frame = imageFrame;
imageView = [[UIImageView alloc]init];
CGRect imageFrame;
imageFrame.origin.x = 10;
imageFrame.origin.y = 10;
imageFrame.size.width = 250;
imageFrame.size.height = 250;
imageView.frame = imageFrame;
[subView addSubview:imageView];
switch (i) {
case 0:
imageView.image = [UIImage imageNamed:@"silverapple41.png"];
break;
case 1:
imageView.image = [UIImage imageNamed:@"silverapple42.png"];
break;
case 2:
imageView.image = [UIImage imageNamed:@"silverapple43.png"];
break;
default:
break;
}
case 0:
imageView.image = [UIImage imageNamed:@"silverapple41.png"];
break;
case 1:
imageView.image = [UIImage imageNamed:@"silverapple42.png"];
break;
case 2:
imageView.image = [UIImage imageNamed:@"silverapple43.png"];
break;
default:
break;
}
[imageView setBackgroundColor:[UIColor whiteColor]];
[self.scrollView addSubview:subView];
[subView release];
}
[self.scrollView addSubview:subView];
[subView release];
}
self.scrollView.contentSize = CGSizeMake(self.scrollView.frame.size.width * [colors count], self.scrollView.frame.size.height);
self.pageControl.currentPage = 0;
self.pageControl.numberOfPages = colors.count;
}
self.pageControl.currentPage = 0;
self.pageControl.numberOfPages = colors.count;
}
-(void)scrollViewDidScroll:(UIScrollView *)scrollView {
if (!pageControlUsed) {
CGFloat pageWidth = self.scrollView.frame.size.width;
int page = floor((self.scrollView.contentOffset.x – pageWidth / 2 ) / pageWidth) + 1;
self.pageControl.currentPage = page;
}
}
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 {
pageControlUsed = NO;
}
pageControlUsed = NO;
}
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
pageControlUsed = NO;
}
pageControlUsed = NO;
}
// valueChanged event
- (IBAction)changePage:(id)sender {
- (IBAction)changePage:(id)sender {
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];
pageControlUsed = YES;
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];
pageControlUsed = YES;
}