//
// 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

最新文章

  1. 【技巧】为ComboBox添加自动提示
  2. Open Cascade DataExchange IGES
  3. Windows7 x64 系统下安装 Nodejs 并在 WebStorm 9.0.1 下搭建编译 LESS 环境
  4. 【easyui】--combobox--赋值和获取选中的值
  5. 欧拉工程第69题:Totient maximum
  6. h5新特性
  7. 用lambda表达式替代 for循环进行批量操作。
  8. AFNetworiking与ASIHttpRequest对比
  9. BZOJ 2337: [HNOI2011]XOR和路径( 高斯消元 )
  10. 大数据时代的 9 大Key-Value存储数据库
  11. 数据分析与展示——Pandas数据特征分析
  12. openstack安装系列问题:window7 64位安装的virtualBox 只能选择32位的系统安装不能选择64位的系统安装
  13. 易错点---所有的字符都自带bool值
  14. Doom HDU - 5239 (找规律+线段树)
  15. tomcat是什么?Tomcat 下载、安装、配置图文教程
  16. js实现页面遮罩层,并且阻止页面body滚动
  17. Spring Boot切换为APR模式
  18. 使用Tortoise结合Git比较两个版本的差异
  19. javaweb笔记三
  20. selenium+python自动化91-unittest多线程生成报告(BeautifulReport)

热门文章

  1. selenium等待方式详解
  2. linux 查看历史命令 history命令
  3. ElasticSearch的应用
  4. 论文翻译:2020_FLGCNN: A novel fully convolutional neural network for end-to-end monaural speech enhancement with utterance-based objective functions
  5. 彻彻底底地理解TCP三次握手和四次挥手的全部过程
  6. ubuntu18.04下取消中键复制粘贴功能
  7. 阐述JDBC操作数据库的步骤
  8. 676. Implement Magic Dictionary
  9. Go 常用函数
  10. Python3 生成激活码