IOS scrollView 图片浏览
//
// 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
IOS scrollView 图片浏览的更多相关文章
- IOS第六天(3:scrollView 图片轮播器)
		
IOS第六天(3:scrollView 图片轮播器) #import "HMViewController.h" #define kImageCount 5 @interface H ...
 - iOS Swift WisdomScanKit二维码扫码SDK,自定义全屏拍照SDK,系统相册图片浏览,编辑SDK
		
iOS Swift WisdomScanKit 是一款强大的集二维码扫码,自定义全屏拍照,系统相册图片编辑多选和系统相册图片浏览功能于一身的 Framework SDK [1]前言: 今天给大家 ...
 - iOS开发-图片查看(ScrollView+UIPageControl)
		
上周没事写了一个简单的图片查看,上次的查看只用到了一个UIImageView,不断的替换背景图片,实现图片之间的切换.通过ScrollView可以很简单的是实现图片之间的查看,设置setPagingE ...
 - Unity3d之ScrollView实现图片浏览切换功能----折磨的学习
		
由于项目需要,需要用NGUi实现一个图片浏览切换的功能,于是参考官方NGUI例子的ScrollView做了一个例子,初始看上去基本实现了自己想要的功能. 但是测试后发现当隐藏其中一张图片后,后面图片不 ...
 - [置顶] ios 一个不错的图片浏览分享框架demo
		
demo功能:一个不错的图片浏览分享框架demo.iphone6.1 测试通过.可以浏览图片,保存,微博分享到新浪,腾讯,网易,人人等. 注:(由于各个微博的接口有时候会有调整,不一定能分享成功.只看 ...
 - 一款基于 Android 开发的离线版的 MM 图片浏览 App
		
一款离线版的 MM 图片浏览 App,有点类似掌上百度的图片专栏应用.图片采用瀑布流展示方式,点击图片集,支持左右手势滑动切换图片:支持放大缩小功能. 实现功能:1)图片完全离线,不耗个人 GPRS ...
 - 23.Quick QML-简单且好看的图片浏览器-支持多个图片浏览、缩放、旋转、滑轮切换图片
		
之前我们已经学习了Image.Layout布局.MouseArea.Button.GroupBox.FileDialog等控件. 所以本章综合之前的每章的知识点,来做一个图片浏览器,使用的Qt版本为Q ...
 - iOS多图片下载
		
iOS多图片下载.在cell里面下载图片.做了缓存优化. (app.icon是图片地址) // 先从内存缓存中取出图片 UIImage *image = self.images[app.icon]; ...
 - 图片浏览(CATransition)转场动画
		
Main.storyboard ViewController.m // // ViewController.m // 8A04.图片浏览(转场动画) // // Created by huan ...
 
随机推荐
- 关于linux的一点好奇心(一):linux启动过程
			
一直很好奇,操作系统是如何工作的?我们知道平时编程,是如何让代码跑起来的,但那些都是比较高层次的东西.越往后,你会越觉得,像是空中楼阁,或者说只是有人帮你铺平了许多道理,而你却对此一无所知. 1. 操 ...
 - cpuinfo基本参数讲解
			
1.首先我们明确几个概念 (1)物理CPU 物理cpu数量,实际服务器中插槽上的CPU个数 实例: [root@kvm01 ~]# cat / ...
 - centos6.5-搭建Apache
			
准备工作 1.关闭防火墙 service iptables stop 2.关闭selinux安全机制 setenforce 0 3.卸载rpm格式的httpd 这说明已经安装了rpm格式的软件包.所以 ...
 - 在动态组件上使用 keep-alive
			
----------------------html.js.style----------------------------------------------- <!DOCTYPE html ...
 - spring security 动态 修改当前登录用户的 权限
			
1.前言 spring security 可以获取当前登录的用户信息,同时提供了接口 来修改权限列表信息 , 使用这个方法 ,可以动态的修改当前登录用户权限. 那么问题来了... 如果我是管理员 ,如 ...
 - 日志收集系统系列(三)之LogAgent
			
一.什么是LogAhent 类似于在linux下通过tail的方法读日志文件,将读取的内容发给kafka,这里的tailf是可以动态变化的,当配置文件发生变化时,可以通知我们程序自动增加需要增加的配置 ...
 - Linux上天之路(十六)之Shell编程一
			
用户在命令行输入命令后,一般情况下Shell会fork并exec该命令,但是Shell的内建命令例外,执行内建命令相当于调用Shell进程中的一个函数,并不创建新的进程.以前学过的cd.alias.u ...
 - 新增访客数量MR统计之Reduce和Runner相关准备
			
关注公众号:分享电脑学习回复"百度云盘" 可以免费获取所有学习文档的代码(不定期更新)云盘目录说明:tools目录是安装包res 目录是每一个课件对应的代码和资源等doc 目录是一 ...
 - Git 基本操作指南
			
Git 基本操作指南 内容概要 这个作业属于哪个课程 2022面向对象程序设计 这个作业要求在哪里 2022面向对象程序设计寒假作业1 这个作业的目标 Git & Github 作业正文 如下 ...
 - 《设计模式面试小炒》策略和工厂模式替代业务场景中复杂的ifelse
			
<设计模式面试小炒>策略和工厂模式替代业务场景中复杂的ifelse 我是肥哥,一名不专业的面试官! 我是囧囧,一名积极找工作的小菜鸟! 囧囧表示:小白面试最怕的就是面试官问的知识点太笼统, ...