iOS-UIScrollView和UIPageControl的綜合實力,滾動圖,輪播圖,uiscrollview圖片輪播
本代碼主要實現圖片之間的切換
目錄結構
代碼
ViewController.m檔案
#import "ViewController.h"@interface ViewController ()@property(strong,nonatomic)UIScrollView *scrollView;@property(strong,nonatomic)UIPageControl *pageControl;//儲存圖片@property(strong,nonatomic)UIImageView *firstIamges;@property(strong,nonatomic)UIImageView *secondImage;@property(strong,nonatomic)UIImageView *thirdImage;//儲存圖片的集合@property(strong,nonatomic)NSMutableArray *imageArray;//當前頁碼@property(assign,nonatomic)int currentPage;@end@implementation ViewController- (void)viewDidLoad { [super viewDidLoad]; self.scrollView=[[UIScrollView alloc]initWithFrame:CGRectMake(0, 20,WIDTH , HEIGHT)]; self.scrollView.contentSize=CGSizeMake(WIDTH*3, 0); self.scrollView.pagingEnabled=YES; self.scrollView.delegate=self; self.scrollView.showsHorizontalScrollIndicator=NO; [self.view addSubview:self.scrollView]; self.pageControl=[[UIPageControl alloc]initWithFrame:CGRectMake(WIDTH/2.7, 300, WIDTH/5, 20)]; //設定當前頁 self.pageControl.currentPage=0; //分頁 self.pageControl.numberOfPages=5; //指定頁碼的顏色 self.pageControl.currentPageIndicatorTintColor=[UIColor redColor]; self.pageControl.pageIndicatorTintColor=[UIColor blueColor]; [self.view addSubview:self.pageControl]; //初始化儲存圖片的集合 self.imageArray=[NSMutableArray array]; for (int i=1; i<6; i++) { UIImage *image=[UIImage imageNamed:[NSString stringWithFormat:@"%d",i]]; [self.imageArray addObject:image]; } self.firstIamges=[[UIImageView alloc]init]; self.secondImage=[[UIImageView alloc]init]; self.thirdImage=[[UIImageView alloc]init]; //當前頁碼 self.currentPage=0; [self reloadImage]; }-(void)reloadImage{ //第一種情況,第一頁 if(self.currentPage==0){ self.firstIamges.image=[self.imageArray lastObject]; self.secondImage.image=[self.imageArray objectAtIndex:self.currentPage]; self.thirdImage.image=[self.imageArray objectAtIndex:self.currentPage+1]; } //第二種情況 最後一頁 else if(self.currentPage==self.imageArray.count-1){ self.firstIamges.image=[self.imageArray objectAtIndex:self.currentPage-1]; self.secondImage.image=[self.imageArray objectAtIndex:self.currentPage]; self.thirdImage.image=[self.imageArray objectAtIndex:0]; } //中間頁 else{ self.firstIamges.image=[self.imageArray objectAtIndex:self.currentPage-1]; self.secondImage.image=[self.imageArray objectAtIndex:self.currentPage]; self.thirdImage.image=[self.imageArray objectAtIndex:self.currentPage+1]; } self.firstIamges.frame=CGRectMake(0, 0, WIDTH, 300); self.secondImage.frame=CGRectMake(WIDTH, 0, WIDTH, 300); self.thirdImage.frame=CGRectMake(WIDTH*2, 0, WIDTH, 300); [self.scrollView addSubview:self.firstIamges]; [self.scrollView addSubview:self.secondImage]; [self.scrollView addSubview:self.thirdImage]; self.scrollView.contentOffset=CGPointMake(WIDTH, 0);}#pragma mark -Scrollview Delegate//在滾動結束狀態換圖-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{ float x=self.scrollView.contentOffset.x; //向左 if (x<0||x==0) { if (self.currentPage==0) { self.currentPage=(int)self.imageArray.count-1; }else{ self.currentPage--; } } //向右 if(x>WIDTH*2||x==WIDTH*2){ if (self.currentPage==(int)self.imageArray.count-1) { self.currentPage=0; }else{ self.currentPage++; } } self.pageControl.currentPage=self.currentPage; [self reloadImage];}- (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated.}@end
ViewController.h檔案
#import <UIKit/UIKit.h>#define WIDTH self.view.frame.size.width#define HEIGHT self.view.frame.size.height@interface ViewController : UIViewController<UIScrollViewDelegate>@end