//
// ViewController.m
// 0426
//
// Created by apple on 15/4/26.
// Copyright (c) 2015年 gense. All rights reserved.
//
#import "ViewController.h"
@interface ViewController ()<UIScrollViewDelegate>
{
UIPageControl * pageControl;
//定义图片名称集合
NSMutableArray * arr ;
//主显示图片view
UIImageView * mainImageView ;
//
UIImageView * otherImageView;
//定义当前显示索引位置
int currentImageIndex ;
UIImage * leftImage ;
UIImage * rightImage;
}
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
//取得屏幕宽度与高度
CGFloat width = self.view.frame.size.width;
CGFloat height = self.view.frame.size.height;
arr = [NSMutableArray arrayWithCapacity:8];
//添加滚动图片
for (int i=0 ;i < 8; i++) {
[arr addObject:[NSString stringWithFormat:@"0%d.jpg",i+1]];
}
currentImageIndex = 0;
[self setImage];
//实例化不显示图片
mainImageView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:arr[0]]];
mainImageView.frame = CGRectMake(width, 0, width, height);
[_scrollView addSubview:mainImageView];
otherImageView = [[UIImageView alloc] init];
[_scrollView addSubview:otherImageView];
//设置scrollview 滚动区域
_scrollView.contentSize = CGSizeMake(3 * width, 0);
//显示中间图片
_scrollView.contentOffset = CGPointMake(width, 0);
//隐藏水平滚动格
_scrollView.showsHorizontalScrollIndicator = NO;
_scrollView.pagingEnabled = YES;
//注册scrollview 的代理对象
_scrollView.delegate = self;
//添加分布条
pageControl = [[UIPageControl alloc]init];
//设置分页条位置
pageControl.center = CGPointMake(width/2, height-39);
pageControl.bounds = CGRectMake(0, 0, width, 30);
//设置分页条 分页项的color
pageControl.pageIndicatorTintColor = [UIColor whiteColor];
pageControl.currentPageIndicatorTintColor = [UIColor blackColor];
pageControl.numberOfPages = 8;
pageControl.currentPage = 0;
//添加change事件
[pageControl addTarget:self action:@selector(pageControlPageChange:) forControlEvents:UIControlEventValueChanged];
[_scrollView addSubview:pageControl];
}
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
int currentPage = scrollView.contentOffset.x/scrollView.frame.size.width ;
if(currentPage == 1)
{
return ;
}
//向左滑
if(currentPage == 0)
{
if( currentImageIndex == 0)
{
currentImageIndex = 7;
}
else
{
currentImageIndex--;
}
mainImageView.image = leftImage;
_scrollView.contentOffset = CGPointMake(mainImageView.frame.origin.x, 0);
}
else if(2 == currentPage) //向右滑
{
if(currentImageIndex == 7)
{
currentImageIndex = 0;
}
else
{
currentImageIndex ++;
}
mainImageView.image = rightImage;
_scrollView.contentOffset = CGPointMake(mainImageView.frame.origin.x, 0);
}
pageControl.currentPage = currentImageIndex ;
//NSLog(@"current page index %d",currentImageIndex);
//重新设置左右图片
[self setImage];
}
- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView{
NSLog(@"end scrolling Animation");
}
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
//调整pageControl bounds size x位置
pageControl.center = CGPointMake( scrollView.contentOffset.x + scrollView.frame.size.width/2, scrollView.frame.size.height-39);
//得到主显示图片的位置
CGFloat mainImageX = mainImageView.frame.origin.x;
//得到滚动offsetX
CGFloat offsetX = _scrollView.contentOffset.x;
//向右滚动
if(offsetX < mainImageX)
{
otherImageView.image = leftImage;
otherImageView.frame = CGRectMake(0, 0, _scrollView.frame.size.width, _scrollView.frame.size.height);
}
else //向左滚动
{
otherImageView.image = rightImage;
otherImageView.frame = CGRectMake(mainImageX*2, 0, _scrollView.frame.size.width, _scrollView.frame.size.height);
}
}
- (void) pageControlPageChange:(UIPageControl *) page
{
[UIView animateWithDuration:0.5 animations:^{
_scrollView.contentOffset = CGPointMake(page.currentPage*_scrollView.frame.size.width, 0);
}];
}
#pragma mark 取得下一张图片
- (void) setImage
{
if(currentImageIndex == 0)
{
leftImage = [UIImage imageNamed:arr[7]];
rightImage = [UIImage imageNamed:arr[1]];
}
else if(currentImageIndex == 7)
{
leftImage = [UIImage imageNamed:arr[6]];
rightImage = [UIImage imageNamed:arr[0]];
}
else
{
leftImage = [UIImage imageNamed:arr[currentImageIndex-1]];
rightImage = [UIImage imageNamed:arr[currentImageIndex+1]];
}
}
@end