简单的UIScrollView循环滑动

24 篇文章 0 订阅

//

//  ViewController.m

//  UIScrollView循环播放效果

//

//  Created by 肖鹏 on 16/7/27.

//  Copyright © 2016 xiaopeng. All rights reserved.

//


#import "ViewController.h"


int NumbersOfPictures = 9;


@interface ViewController (){

    UIImageView *_leftImageView;

    UIImageView *_currentImageView;

    UIImageView *_rightImageView;

    //_currentIndex用来标识Image显示的位置

    NSInteger _currentIndex;

    

    UIScrollView *_scrollView;

    NSMutableArray *_imageNameList;

    double VIEW_WIDTH;

    double VIEW_HEIGHT;

}

//初始化数据源

-(void)initializeDataSource;

//初始化用户界面

-(void)initializeUserInterface;





@end


@implementation ViewController


- (void)viewDidLoad {

    [super viewDidLoad];

    // Do any additional setup after loading the view, typically from a nib.

    [self initializeDataSource];

    [self initializeUserInterface];


}



//初始化数据源

-(void)initializeDataSource{

    _currentIndex = 0;

    _imageNameList = [[NSMutableArray alloc]init];

    for(int i=0;i<NumbersOfPictures;i++){

        NSString *imageName = [NSString stringWithFormat:@"%d.jpg",i];

        [_imageNameList addObject:imageName];

    }

    

    //初始化宽和高

    VIEW_WIDTH = CGRectGetWidth(self.view.bounds);

    VIEW_HEIGHT = CGRectGetHeight(self.view.bounds);

  

}


//0开始索引

//初始化图片

-(void)initImages{

    NSLog(@"初始化三张图片%ld",_currentIndex);

    _leftImageView.image = [UIImage imageNamed:_imageNameList[(_currentIndex-1+NumbersOfPictures)%NumbersOfPictures]];

    _currentImageView.image = [UIImage imageNamed:_imageNameList[_currentIndex]];

    _rightImageView.image = [UIImage imageNamed:_imageNameList[(_currentIndex+1)%NumbersOfPictures]];

    

}




//初始化用户界面

-(void)initializeUserInterface{


    

    

    //初始化_scrollView

    _scrollView = [[UIScrollView alloc]init];

    [_scrollView setBounds:self.view.bounds];

    [_scrollView setCenter:self.view.center];

    _scrollView.pagingEnabled = YES;

    [_scrollView setDelegate:self];

    [_scrollView setBounces:NO];

    [_scrollView setContentSize:CGSizeMake(3*VIEW_WIDTH,VIEW_HEIGHT)];

    [_scrollView setContentOffset:CGPointMake(VIEW_WIDTH, 0)];

    [self.view addSubview:_scrollView];

    

    //初始化三张ImageView的位置

    _leftImageView = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, VIEW_WIDTH, VIEW_HEIGHT)];

    _currentImageView = [[UIImageView alloc]initWithFrame:CGRectMake(VIEW_WIDTH, 0, VIEW_WIDTH, VIEW_HEIGHT)];

    _rightImageView = [[UIImageView alloc]initWithFrame:CGRectMake(2*VIEW_WIDTH, 0, VIEW_WIDTH, VIEW_HEIGHT)];

    //初始化图片数据

    [self initImages];

    

    [_scrollView addSubview:_leftImageView];

    [_scrollView addSubview:_currentImageView];

    [_scrollView addSubview:_rightImageView];

    


}





-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{

    

    CGPoint contentOffset = [_scrollView contentOffset];

    if(contentOffset.x>VIEW_WIDTH){

        NSLog(@"向右划");

        _currentIndex=++_currentIndex%NumbersOfPictures;

        [self initImages];

        [_scrollView setContentOffset:CGPointMake(VIEW_WIDTH, 0)];

    }

    else if(contentOffset.x<VIEW_WIDTH){

        NSLog(@"向左滑动");

        _currentIndex=(_currentIndex-1+NumbersOfPictures)%NumbersOfPictures;

        [self initImages];

        [_scrollView setContentOffset:CGPointMake(VIEW_WIDTH, 0)];

    }

    else{

        NSLog(@"do nothing");

    }

}








@end


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值