iOS-UIScrollView和UIPageControl的綜合實力,滾動圖,輪播圖,uiscrollview圖片輪播

來源:互聯網
上載者:User

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

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.