上周没事写了一个简单的图片查看,上次的查看只用到了一个UIImageView,不断的替换背景图片,实现图片之间的切换。通过ScrollView可以很简单的是实现图片之间的查看,设置setPagingEnabled通过坐标,宽度的设置,可以简单实现一个图片的简单分页查看显示,当然如果你有需求说需要进行所谓的无限循环,在开始和结束的时候的设置一下事件,常用的新闻客户端,图片新闻查看的时候很少有进行最后的时候跳到第一页,一般都是最后的时候都是推荐相关内容,多说了两句,开始吧:

ScrollView图片分页

控件跟上篇文章一样,就是ScrollView:

拖入三张图片到项目中,之前的文章有演示,下次写博客的考虑换图,初始化ScrollView:

     NSArray *imageArr=@[@"girl0.jpg",@"girl1.jpg",@"girl2.jpg"];
CGFloat width=self.scrollView.bounds.size.width;
CGFloat height=self.scrollView.bounds.size.height;
for (NSInteger i=0; i<[imageArr count]; i++) {
UIImage *image=[UIImage imageNamed:imageArr[i]];
UIImageView *imageView=[[UIImageView alloc] initWithImage:image]; [imageView setFrame:CGRectMake(i*width, 0, width, height)];
[_scrollView addSubview:imageView];
}

 这里没有写注释,稍微多说一句就是bounds是边界,可以理解为就是控件中的ScrollView的宽度和高度,也就是上一张图片展示的宽度和高度,设置周围的边界:

   [self.scrollView setBounces:NO];

 设置水平方向的滚动条:

    [self.scrollView setShowsHorizontalScrollIndicator:NO];

设置ScrollView的总体的宽度(关键):

   [self.scrollView setContentSize:CGSizeMake([imageArr count]*width, height)];

设置分页:

 [self.scrollView setPagingEnabled:YES];

演示效果:

UIPageControl和ScrollView图片分页

UIPageControl如果稍微弄过点前端可以理解为焦点图,大概通过指示,iOS中是小圆点,Android需要美工给自己切图或者说自力更生,iOS相对来说还是比较人性的,先定义一个UIPageControl:

@property (nonatomic,strong) UIPageControl *pageControl;

初始化UIPageControl设置大小和位置:

  self.pageControl=[[UIPageControl alloc] init];
self.pageControl.backgroundColor=[UIColor clearColor]; [self.pageControl setBounds:CGRectMake(0, 0,200, 100)];
[self.pageControl setCenter:CGPointMake(width/2,height/2+200.0)];

 设置当前页和页大小:

 self.pageControl.numberOfPages=[imageArr count];
self.pageControl.currentPage=0;

设置当前指示和其他指示:

   [self.pageControl setCurrentPageIndicatorTintColor:[UIColor greenColor]];

    [self.pageControl setPageIndicatorTintColor:[UIColor yellowColor]];

设置滑动的时候改变UIPageControl和通过UIPageControl改变ScrollView:

    [_scrollView setDelegate:self];
[self.pageControl addTarget:self action:@selector(switchPage:) forControlEvents:UIControlEventValueChanged];
[self.view addSubview:_pageControl];

滑动的时候改变UIPageControl指示通过委托设置,具体可参考上篇文章:

-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{
NSInteger currentPage=scrollView.contentOffset.x/self.view.bounds.size.width;
[self.pageControl setCurrentPage:currentPage];
}

UIPageControl改变ScrollView:

- (void)switchPage:(id)sender{
UIPageControl *currentControl=(UIPageControl *)sender;
NSInteger currentPage=currentControl.currentPage;
[_scrollView setContentOffset:CGPointMake(currentPage*self.view.bounds.size.width, 0)] ;
}

 看下具体的效果:

iOS开发-图片查看(ScrollView+UIPageControl)的更多相关文章

  1. iOS开发——UI篇&ScrollView详解

    创建方式 1:StoryBoard/Xib 这里StoarBoard就不多说,直接拖就可以,说太多没意思,如果连这个都不会我只能先给你跪了! 2:代码: CGRect bounds = [ [ UIS ...

  2. iOS开发-图片高斯模糊效果

    iOS开发的时候有的时候需要将图片设置模糊,或者通过点击下拉方法,去除模糊,一切都是为了应用更受用户欢迎,iOS7之后半透明模糊效果得到大范围使用的比较大,现在也可以看到很多应用局部用到了图片模糊效果 ...

  3. iOS开发图片加载的内存问题及优化方案

    原创作者:Magic-Unique 原文地址:https://github.com/Magic-Unique/HXImage猿吧 - 资源共享论坛: http://www.coderbar.cn 做最 ...

  4. IOS开发-图片上传

    目前IOS端开发,图片上传到服务器分为两种,一种是直接上到服务器,一种是借助第三方储存(减少服务器压力). 一.直接上传到服务器 /** * 代码演示 */ //*******UIImagePNGRe ...

  5. iOS开发——图片轮播图+单选选项

    由于公司开发需要,需要滚动每道评测题, 并且一道评测题单项选择,按钮和文字都可点击选中 (单选比多选复杂一点,但是原理差不多) 1.当初任务紧,代码也没有优化,仅供思路参考,先放几张图 2.代码部分 ...

  6. iOS开发--图片轮播

    直接上代码了,比较简单.演示下载地址:Demo // // UYViewController.m // 图片轮播器 // // Created by jiangys on 15/5/23. // Co ...

  7. ios开发图片轮播器以及定时器小问题

    一:图片轮播器效果如图:能实现自动轮播,到最后一页时,轮播回来,可以实现拖拽滚动 二:代码: #import "ViewController.h" ; @interface Vie ...

  8. ios开发图片点击放大

    图片点击放大,再次点击返回原视图.完美封装,一个类一句代码即可调用.IOS完美实现 创建了一个专门用于放大图片的类,以下为.h文件 #import <Foundation/Foundation. ...

  9. IOS开发-图片尺寸

    在这篇文章当中,不会讲述关于具体px pt,分辨率,像素的问题,在这篇文章中,只会谈及到一些展现的问题 如果想了解更多关于pt,px之间的关系可以自行到百度查找相关的答案,或者到以下地址阅读更多相关的 ...

随机推荐

  1. python 与 matlab 混编

    用于 Python 的 MATLAB 引擎 API 快速入门 安装用于 Python 的 MATLAB 引擎 API Matlab的官方文档中介绍了 Matlab 与其余编程语言之间的引擎接口,其中包 ...

  2. UVALive - 6912 Prime Switch (状压DP)

    题目链接:传送门 [题意]有n个灯,m个开关,灯的编号从1~n,每个开关上有一个质数,这个开关同时控制编号为这个质数的倍数的灯,问最多有多少灯打开. [分析]发现小于根号1000的质数有10个左右,然 ...

  3. Jquery API学习笔记

    学习网站 JQuery API 中文网: http://www.jquery123.com/ 学习一遍API可以更熟练的运用jquery并且拓展思路. 这里只挑选了一些我认为在开发中会用到的一些API ...

  4. 安卓 开机 动画 酷派大神F1开机动画 美化 自定义 修改

    韩梦飞沙  韩亚飞  313134555@qq.com  yue31313  han_meng_fei_sha 酷派大神F1开机动画.rar

  5. luoguP4715 [英语]Z语言 平衡树+hash

    显然只能有$hash$来做.... 我们需要一个东西来维护$\sum i * seed^{rank[i]}$ 很自然地联想到平衡树 如果以序列下标建立一棵平衡树,那么无法处理 因此,可以以权值为下标建 ...

  6. 【set】【multiset】Codeforces Round #484 (Div. 2) D. Shark

    题意:给你一个序列,让你找一个k,倘若把大于等于k的元素都标记为不可用,那么剩下的所有元素形成的段的长度相同,并且使得段的数量尽量大.如果有多解,输出k尽量小的. 把元素从大到小排序插回原位置,用一个 ...

  7. 【枚举】AtCoder Regular Contest 095 C - Symmetric Grid

    题意:给你一个H*W的字符矩阵,一次操作可以任意将两行或者两列交换.问你是否能通过任意多次操作,使得其变为对称矩阵.对称的含义是:对于任何格子A(i,j),其都等于A(H-i+1,W-j+1). 显然 ...

  8. mysql-5.7.10产生的日志时间与系统时间不一致

    问题描述: 使用安装的mysql workbench登录mysql后,选择server log 进行日志查看的时候,发现产生日志的时间和当期的系统时间不一致:如下图: 查看mysql系统的当期时间显示 ...

  9. 记一次帮朋友解决apache站点403错误的过程

    apache版本: [root@iZ25eby2utyZ web]# rpm -qa | grep httpd httpd-tools--.el6.centos..x86_64 httpd--.el6 ...

  10. cloc 统计代码行数工具

    cloc 统计代码行数工具 官网地址:http://cloc.sourceforge.net/ 下载完成后 会生成一个.exe文件 需要修改文件名为 cloc.exe 然后把这个文件拷贝到需要统计的根 ...