#import "ViewController.h"
#define ImageCount 10
#define SCREEN_WIDTH [UIScreen mainScreen].bounds.size.width
#define SCREEN_HEIGHT [UIScreen mainScreen].bounds.size.height
@interface ViewController ()<UIScrollViewDelegate>
{
UIScrollView *_scrollView;
UIImageView *_leftImageView;
UIImageView *_middleImageView;
UIImageView *_rightImageView;
int currentImage;
UIPageControl *_pageControl;
}
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
_scrollView = [[UIScrollView alloc]initWithFrame:[UIScreen mainScreen].bounds];
[self.view addSubview:_scrollView];
_scrollView.delegate = self;
_scrollView.contentSize = CGSizeMake(_scrollView.frame.size.width*3, _scrollView.frame.size.height);
//設置當前scrollView顯示中間區域
_scrollView.contentOffset = CGPointMake(_scrollView.frame.size.width, 0);
_scrollView.pagingEnabled = YES;
//添加imageView
//左
_leftImageView = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT)];
_leftImageView.contentMode = UIViewContentModeScaleAspectFill;
[_scrollView addSubview:_leftImageView];
//右
_rightImageView = [[UIImageView alloc]initWithFrame:CGRectMake(SCREEN_WIDTH*2, 0, SCREEN_WIDTH, SCREEN_HEIGHT)];
_rightImageView.contentMode = UIViewContentModeScaleAspectFill;
[_scrollView addSubview:_rightImageView];
//中
_middleImageView = [[UIImageView alloc]initWithFrame:CGRectMake(SCREEN_WIDTH, 0, SCREEN_WIDTH, SCREEN_HEIGHT)];
_middleImageView.contentMode = UIViewContentModeScaleAspectFill;
[_scrollView addSubview:_middleImageView];
currentImage = 0;
//初始化pageControl
_pageControl = [[UIPageControl alloc]init];
//根據頁數返回pageControl合適的大小
CGSize size = [_pageControl sizeForNumberOfPages:ImageCount];
_pageControl.center = CGPointMake(SCREEN_WIDTH/2, 580);
_pageControl.bounds = CGRectMake(0, 0, size.width, size.height);
// _pageControl.backgroundColor = [UIColor whiteColor];
//設置顏色
_pageControl.pageIndicatorTintColor = [UIColor redColor];
_pageControl.currentPageIndicatorTintColor = [UIColor grayColor];
_pageControl.numberOfPages = ImageCount;
_pageControl.currentPage = currentImage;
[self.view addSubview:_pageControl];
[self setImage];
[NSTimer scheduledTimerWithTimeInterval:2.0f target:self selector:@selector(changeImage) userInfo:nil repeats:YES];
}
-(void)changeImage
{
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:1.0f];
_scrollView.contentOffset = CGPointMake(SCREEN_WIDTH*2, 0);
[UIView commitAnimations];
currentImage = (currentImage+1)%ImageCount;
_scrollView.contentOffset = CGPointMake(SCREEN_WIDTH, 0);
[self setImage];
}
-(void) setImage
{
_pageControl.currentPage = currentImage;
// 加載默認圖片
_leftImageView.image = [UIImage imageNamed:[NSString stringWithFormat:@"%d",(ImageCount+currentImage-1)%ImageCount]];
_rightImageView.image = [UIImage imageNamed:[NSString stringWithFormat:@"%d",(currentImage+1)%ImageCount]];
_middleImageView.image = [UIImage imageNamed:[NSString stringWithFormat:@"%d",currentImage]];
}
-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
//若是向右滑動
if (scrollView.contentOffset.x == SCREEN_WIDTH*2) {
currentImage = (currentImage+1)%ImageCount;
scrollView.contentOffset = CGPointMake(SCREEN_WIDTH, 0);
[self setImage];
}
//若是向左滑動
else if(scrollView.contentOffset.x == 0)
{
currentImage = (ImageCount+currentImage-1)%ImageCount;
scrollView.contentOffset = CGPointMake(SCREEN_WIDTH, 0);
[self setImage];
}
}
.net