iOS UIPageControl簡單范例
關於自動 滾動代碼 有待補充
實例中的圖片自行添加
.h 文件代碼
#import@interface ViewController : UIViewController { UIScrollView *_scrollView; NSMutableArray *slideImages; UIPageControl *_page; } @end
#import "ViewController.h" @interface ViewController () @end @implementation ViewController - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; if (self) { // Custom initialization } return self; } - (void)viewDidLoad{ [super viewDidLoad]; _scrollView = [[UIScrollView alloc]initWithFrame:CGRectMake(0, 20, 320, 240)]; _scrollView.bounces = NO; _scrollView.pagingEnabled = YES; _scrollView.delegate = self; _scrollView.contentOffset = CGPointMake(320, 0); _scrollView.contentSize = CGSizeMake(1920,240); _scrollView.showsVerticalScrollIndicator =NO; _scrollView.showsHorizontalScrollIndicator = NO; _scrollView.userInteractionEnabled = YES; [self.view addSubview:_scrollView]; slideImages = [[NSMutableArray alloc]initWithObjects:@"1.png",@"2.png",@"3.png",@"4.png", nil]; UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:[slideImages objectAtIndex:([slideImages count]-1)]]]; imageView.frame = CGRectMake(0, 0, 320, 240); [_scrollView addSubview:imageView]; for (int i = 0;i<[slideImages count];i++) { //loop this bit UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:[slideImages objectAtIndex:i]]]; imageView.frame = CGRectMake(320*i+320, 0, 320, 240); imageView.userInteractionEnabled = YES; [_scrollView addSubview:imageView]; } imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:[slideImages objectAtIndex:0]]]; imageView.frame = CGRectMake(320*5, 0, 320, 240); [_scrollView addSubview:imageView]; _page = [[UIPageControl alloc]initWithFrame:CGRectMake(240, 230, 70, 30)]; _page.numberOfPages = 4; _page.currentPage = 0; // _page.backgroundColor = [UIColor grayColor]; [_page addTarget:self action:@selector(pageAction) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:_page]; // Do any additional setup after loading the view. } - (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{ int currentPage = (_scrollView.contentOffset.x - _scrollView.frame.size.width / ([slideImages count]+2)) / _scrollView.frame.size.width + 1; NSLog(@"%d",currentPage); if (currentPage==0) { [_scrollView scrollRectToVisible:CGRectMake(320*4, 0, 320, 240) animated:NO]; } else if (currentPage==([slideImages count]+1)) { //如果是最後+1,也就是要開始循環的第一個 [_scrollView scrollRectToVisible:CGRectMake(320, 0, 320, 240) animated:NO]; } } - (void)scrollViewDidScroll:(UIScrollView *)sender{ int page = _scrollView.contentOffset.x/320-1; _page.currentPage = page; } -(void)pageAction{ int page = _page.currentPage; [_scrollView setContentOffset:CGPointMake(320 * (page+1), 0)]; } - (void)didReceiveMemoryWarning{ [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } @end