iOS开发-图片查看(ScrollView+UIPageControl)
上周没事写了一个简单的图片查看,上次的查看只用到了一个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)的更多相关文章
- iOS开发——UI篇&ScrollView详解
创建方式 1:StoryBoard/Xib 这里StoarBoard就不多说,直接拖就可以,说太多没意思,如果连这个都不会我只能先给你跪了! 2:代码: CGRect bounds = [ [ UIS ...
- iOS开发-图片高斯模糊效果
iOS开发的时候有的时候需要将图片设置模糊,或者通过点击下拉方法,去除模糊,一切都是为了应用更受用户欢迎,iOS7之后半透明模糊效果得到大范围使用的比较大,现在也可以看到很多应用局部用到了图片模糊效果 ...
- iOS开发图片加载的内存问题及优化方案
原创作者:Magic-Unique 原文地址:https://github.com/Magic-Unique/HXImage猿吧 - 资源共享论坛: http://www.coderbar.cn 做最 ...
- IOS开发-图片上传
目前IOS端开发,图片上传到服务器分为两种,一种是直接上到服务器,一种是借助第三方储存(减少服务器压力). 一.直接上传到服务器 /** * 代码演示 */ //*******UIImagePNGRe ...
- iOS开发——图片轮播图+单选选项
由于公司开发需要,需要滚动每道评测题, 并且一道评测题单项选择,按钮和文字都可点击选中 (单选比多选复杂一点,但是原理差不多) 1.当初任务紧,代码也没有优化,仅供思路参考,先放几张图 2.代码部分 ...
- iOS开发--图片轮播
直接上代码了,比较简单.演示下载地址:Demo // // UYViewController.m // 图片轮播器 // // Created by jiangys on 15/5/23. // Co ...
- ios开发图片轮播器以及定时器小问题
一:图片轮播器效果如图:能实现自动轮播,到最后一页时,轮播回来,可以实现拖拽滚动 二:代码: #import "ViewController.h" ; @interface Vie ...
- ios开发图片点击放大
图片点击放大,再次点击返回原视图.完美封装,一个类一句代码即可调用.IOS完美实现 创建了一个专门用于放大图片的类,以下为.h文件 #import <Foundation/Foundation. ...
- IOS开发-图片尺寸
在这篇文章当中,不会讲述关于具体px pt,分辨率,像素的问题,在这篇文章中,只会谈及到一些展现的问题 如果想了解更多关于pt,px之间的关系可以自行到百度查找相关的答案,或者到以下地址阅读更多相关的 ...
随机推荐
- 安卓手机获取IP地址
public class IpGetUtil { public static String getIPAddress(Context context) { NetworkInfo info = ((C ...
- jQuery的data() 和 h5 的 dataset()
作用:获取自定义属性 命名规则:驼峰命名法 data-user==>user data-user-name==>userName 区别:jQuery:操作内存 h5: 操作DOM j ...
- 将已有的项目提交到GitHub
1.目的: 将已有的项目提交到GitHub 2.准备工作 2.1 此教程建立在对git有初步的理解上 2.2 此教程之前需准备工作 a.熟悉git的一些基本命令和原理. b.已注册有GitHub账号. ...
- interrupt_control
中断的概念CPU在处理过程中,经常需要同外部设备进行交互,交互的方式由“轮询方式”“中断方式” 轮询方式: 方式:在同外设进行交互的过程中,CPU每隔一定的时间状态就去查询相关的状态位,所以在交互期间 ...
- POJ 3177 Redundant Paths 双联通分量 割边
http://poj.org/problem?id=3177 这个妹妹我大概也曾见过的~~~我似乎还没写过双联通分量的blog,真是智障. 最少需要添多少条边才能使这个图没有割边. 边双缩点后图变成一 ...
- 【贪心】【字典树】Gym - 101466A - Gaby And Addition
题意:定义一种无进位加法运算,给你n个正整数,问你取出两个数,使得他们加起来和最大/最小是多少. 无进位加法运算,其实是一种位运算,跟最大xor那个套路类似,很容易写出对于每个数字,其对应的最优数字是 ...
- 一个完成的spring xml配置文件
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...
- Windows Server 2008 R2下将nginx安装成windows系统服务
一直在Linux平台上部署web服务,但是最近的一个项目,必须要用windows,不得已再次研究了nginx在windows下的表现,因为Apache httpd在Windows下表现其实也不算太好, ...
- bzoj 3209 数位DP+欧拉定理
枚举1的个数,统计有那么多1的数的个数 /************************************************************** Problem: 3209 Us ...
- pygame系列_pygame的各模块叙述
在pygame中,有很多模块,每个模块对应着不同的功能,如果我们知道这些模块是做什么的,那么,对我们的游戏开发会起到关键性的作用. 我们就说说pygame中的各个模块吧!!! #pygame modu ...