【iOS系列】-UIScrollView的介绍及结合UIPageControl实现图片播放的实例
【iOS系列】-UIScrollView的介绍及结合UIPageControl实现图片播放的实例
第一:UIScrollView的常用属性
//表示UIScrollView内容的尺寸,滚动范围
@property(nonatomic) CGSize contentSize;
//在UIScrollView的4周增加额外的滚动区域
@property(nonatomic) UIEdgeInsets contentInset;
//表示UIScrollView滚动的位置(以内容为起点),一开始的滚动位置
@property(nonatomic) CGPoint contentOffset;
//设置带有动画的滚动
[self.scrollView setContentOffset:offset animated:YES];
第二:UIScrollView的常用方法
// 用户开始拖拽时调用
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView;
// 滚动到某个位置时调用
- (void)scrollViewDidScroll:(UIScrollView *)scrollView;
// 用户结束拖拽时调用
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate;
实例一:scrollView实现捏合(缩放)的效果
self.scrollView.delegate = self;
// 设置最大和最小的缩放比例
self.scrollView.maximumZoomScale = 2.0;
self.scrollView.minimumZoomScale = 0.2;
/**
* 当用户使用捏合手势的时候会调用,实现
*
* @return 返回的控件就是需要进行缩放的控件
*/
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
return self.minionView;
}
实例二:实现常见的图片播放效果
源码下载:https://github.com/darren90/UIScrollView-UIPageControl
思路:可以把要显示的图片拼接起来,放到scrollview中,同时设置scrollview的contentSize的X值(水平方向滚动)为图片的总宽度,这样就好了。
scrollview这样畸形设置
scrollView.contentSize = CGSizeMake(scrollViewW*numImageCount, 0);
scrollView.contentInset = UIEdgeInsetsMake(0, 20, 0, 20);
scrollView.showsHorizontalScrollIndicator = NO;
scrollView.delegate = self;
scrollView.pagingEnabled = YES;
实现scrollview的代理方式
-(void)scrollViewDidScroll:(UIScrollView *)scrollView
{
CGFloat scrollW = scrollView.frame.size.width;
CGFloat width = scrollView.contentOffset.x;
int page = (width + scrollW * 0.5) / scrollW;
self.pageControl.currentPage = page;
}
注:详细的实现可参考源码。
附:NSTimer的介绍:
两种定时器:
1:NSTimer:时间间隔大
2:CADisplayLink:时间间隔小
获取定时器:
第一:需要调用fire方法才可以走得定时器:
timerWithTimeInterval
timerWithTimeInterval
第二:会自动走的定时器:
scheduledTimerWithTimeInterval
停止定时器
ivaladate
把timer添加到主线程:
//默认没有优先级
//extern NSString* const NSDefaultRunLoopMode;
//提高优先级
//extern NSString* const NSRunLoopCommonModes;
[[NSRunLoop currentRunLoop] addTimer:self.timer forMode:NSRunLoopCommonModes];
作者:Darren
微博:@IT_攻城师
github:@Darren90
博客:http://www.cnblogs.com/fengtengfei/
欢迎您的访问...
【iOS系列】-UIScrollView的介绍及结合UIPageControl实现图片播放的实例的更多相关文章
- iOS系列 基础篇 05 视图鼻祖 - UIView
iOS系列 基础篇 05 视图鼻祖 - UIView 目录: UIView“家族” 应用界面的构建层次 视图分类 最后 在Cocoa和Cocoa Touch框架中,“根”类时NSObject类.同样, ...
- iOS系列 基础篇 08 文本与键盘
iOS系列 基础篇 08 文本与键盘 目录: 1. 扯扯犊子 2. TextField 3. TextView 4. 键盘的打开和关闭 5. 打开/关闭键盘的通知 6. 键盘的种类 7. 最后再扯两句 ...
- iOS系列 基础篇 03 探究应用生命周期
iOS系列 基础篇 03 探究应用生命周期 目录: 1. 非运行状态 - 应用启动场景 2. 点击Home键 - 应用退出场景 3. 挂起重新运行场景 4. 内存清除 - 应用终止场景 5. 结尾 本 ...
- iOS系列 基础篇 06 标签和按钮 (Label & Button)
iOS系列 基础篇 06 标签和按钮 (Label & Button) 目录: 标签控件 按钮控件 小结 标签和按钮是两个常用的控件,下面咱们逐一学习. 1. 标签控件 使用Single Vi ...
- iOS程序-UIScrollView的基本使用
iOS程序-UIScrollView的基本使用 scrollView的几个属性contentSize contentOffset contentInset 1.不能向上滑动很可能是因为contentS ...
- 【iOS系列】- iOS吸附效果的实现 之 UICollectionView的使用全解
[iOS系列]- iOS吸附效果的实现 之 UICollectionView的使用全解 UICollectionView可以做很多的布局,在iOS开发中较为重要,所以这里就以实例来讲解UICollec ...
- 【iOS系列】-A server with the specified hostname could not be found.问题解决
[iOS系列]-A server with the specified hostname could not be found.问题解决 Reveal 在iOS开发中可以方便查看界面的布局,较为方便的 ...
- 【iOS系列】-UIWebView加载网页禁止左右滑动
[iOS系列]-UIWebView加载网页禁止左右滑动 问题: 做项目时候,用UIWebView加载网页的时候,要求是和微信网页中打开的网页的效果一样,也即是只能上下滑动,不能左右滑动,也不能缩放. ...
- 【iOS系列】-UIButton的非常规使用
[iOS系列]-UIButton的非常规使用 主要介绍UIButton在开发中得小技巧,使用好了,可以达到很奇妙的效果. 1:设置按钮内边距属性,可以呈现出相框的效果 btn.contentEdgeI ...
随机推荐
- 【eclipse】使用说明
一. 设置jdk版本 1. Window->Preferences->Java->Installed JREs,选择jdk安装目录: 2. Window->Preference ...
- ubuntu卸载编译安装的软件
cd 源代码目录 make clean ./configure make make uninstall
- matlab自定义函数的五种表示(前2种重点)
1.命令文件/函数文件+函数文件:多个M文件 2.函数文件+子函数:一个M文件 3. inline:无需M文件 4.符号表达式+subs方式:无需M文件 5.字符串+subs方式:无需M文件 第一种: ...
- jQuery.data() 的实现方式
jQuery.data() 的作用是为普通对象或 DOM Element 附加(及获取)数据. 下面将分三个部分分析其实现方式: 1. 用name和value为对象附加数据:即传入三个参数,第 ...
- 03003_Http响应
1.Http协议 (1)状态码: (2)常用的状态码如下: 200 :请求成功: 302 :请求重定向: 304 :请求资源没有改变,访问本地缓存: 404 :请求资源不存在.通常是用户路径编写错误, ...
- loadrunner使用随机值
用户登录设置:系统用1000000001.1000000002等可以登录系统,这个代表登录的用户名
- Cake(凸包+区间DP)
You want to hold a party. Here's a polygon-shaped cake on the table. You'd like to cut the cake into ...
- 使用RMAN恢复数据库
使用RMAN恢复数据库 由于需要搭建一个测试环境,把上周末的一个全备拿出来做恢复,首先备份一下测试库上现有的重要表: exp banping/bangping@ERPTEST file=f:\2009 ...
- CodeForces - 586D Phillip and Trains
这道题是一道搜索题 但是 如果没有读懂或者 或者拐过弯 就很麻烦 最多26个火车 那么每一个周期 (人走一次 车走一次) 就要更改地图 的状态 而且操作复杂 容易超时 出错 利用相对运动 计周期为 人 ...
- google play上获取apk文件
先说一种测试不通过的方法(chrome浏览器添加Direct APK downloader拓展程序),浪费了我很多的时间,结果发现根本用不了,记录一下过程给大家参考. 使用chrome浏览器,点击左上 ...