原创文章,转载请注明出处:http://blog.csdn.net/donny_zhang/article/details/9923053

demo功能:ios 无限循环翻页源码例子。iphone 6.1测试通过。

demo说明:MyScrollView.m中又主要的页面控制代码。使用 UIScrollView和 UIPageControl控件。通过在滚动结束时设置uiscrollview的内容起始坐标来实现无限制循环。

demo截屏:

demo主要代码:MyScrollView.m

- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
// Initialization code //UIScrollView
carScroll=[[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 1024, 748)];
[carScroll setContentSize:CGSizeMake(1024*(TOTLE_PAGE+1), 100)];
[carScroll setShowsHorizontalScrollIndicator:NO];
[carScroll setPagingEnabled:YES];
[carScroll setDelegate:self]; for(int i=0; i<TOTLE_PAGE+1; i++) {
UIImageView *scrollImg = [[UIImageView alloc] initWithImage:[UIImage imageNamed:[NSString stringWithFormat:@"%d.png",i]]] ;
scrollImg.frame = CGRectMake(1024*i, 0, 1024, 748);
scrollImg.tag = 2220+i;
scrollImg.userInteractionEnabled = YES;
UITapGestureRecognizer *tapGestrue = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapAction:)];
[scrollImg addGestureRecognizer:tapGestrue];
[tapGestrue release], tapGestrue = nil;
[carScroll addSubview:scrollImg];
[scrollImg release], scrollImg = nil;
}
[self addSubview:carScroll]; //carPageControl
carPageControl=[[UIPageControl alloc] initWithFrame:CGRectMake(380, 700, 350, 26)];
[carPageControl setNumberOfPages:TOTLE_PAGE];
[carPageControl addTarget:self action:@selector(changePage:) forControlEvents:UIControlEventValueChanged];
[self addSubview:carPageControl]; }
return self;
} #pragma mark -
#pragma ScrollView Delegate -(void) scrollViewDidScroll:(UIScrollView *)scrollView
{
int offsetX = scrollView.contentOffset.x;
if(offsetX < 0){
[scrollView setContentOffset:CGPointMake(1024*TOTLE_PAGE, 0)];
}
if(offsetX > 1024*TOTLE_PAGE){
[scrollView setContentOffset:CGPointMake(0, 0)];
}
} - (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
int offsetX = scrollView.contentOffset.x;
if(offsetX/1024 == TOTLE_PAGE){
[scrollView setContentOffset:CGPointMake(0, 0)];
carPageControl.currentPage = 0;
}
if(offsetX%1024 == 0){
[carPageControl setCurrentPage:scrollView.contentOffset.x/1024];
}
}

demo下载地址:http://download.csdn.net/detail/donny_zhang/5914159

[置顶] ios 无限循环翻页源码例子的更多相关文章

  1. 自己定义 ViewGroup 支持无限循环翻页之三(响应回调事件)

    大家假设喜欢我的博客,请关注一下我的微博,请点击这里(http://weibo.com/kifile),谢谢 转载请标明出处,再次感谢 ################################ ...

  2. HTML多图无缝循环翻页效果

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. iOS即时通讯之CocoaAsyncSocket源码解析五

    接上篇:iOS即时通讯之CocoaAsyncSocket源码解析四         原文 前言: 本文为CocoaAsyncSocket Read篇终,将重点涉及该框架是如何利用缓冲区对数据进行读取. ...

  4. iOS即时通讯之CocoaAsyncSocket源码解析一

    申明:本文内容属于转载整理,原文连接 前言: CocoaAsyncSocket是谷歌的开发者,基于BSD-Socket写的一个IM框架,它给Mac和iOS提供了易于使用的.强大的异步套接字库,向上封装 ...

  5. iOS即时通讯之CocoaAsyncSocket源码解析四

    原文 前言: 本文为CocoaAsyncSocket源码系列中第二篇:Read篇,将重点涉及该框架是如何利用缓冲区对数据进行读取.以及各种情况下的数据包处理,其中还包括普通的.和基于TLS的不同读取操 ...

  6. iOS即时通讯之CocoaAsyncSocket源码解析二

    原文 前言 本文承接上文:iOS即时通讯之CocoaAsyncSocket源码解析一 上文我们提到了GCDAsyncSocket的初始化,以及最终connect之前的准备工作,包括一些错误检查:本机地 ...

  7. 一个功能齐全的IOS音乐播放器应用源码

    该源码是在ios教程网拿过来的,一个不错的IOS音乐播放器应用源码,这个是我当时进公司时 我用了一晚上写的  图片都是在别的地方扒的,主要是歌词同步,及上一曲,下一曲,功能齐全了 ,大家可以学习一下吧 ...

  8. ios版弹珠游戏源码

    这个是我们比较喜欢玩的一直小游戏的,ios版弹珠游戏源码,该游戏源码来着IOS教程网其他网友提供上传的,大家可以了解一下吧. nore_js_op>     <ignore_js_op&g ...

  9. IOS版新闻客户端应用源码项目

    IOS版新闻客户端应用源码,这个是一款简单的新闻客户端源码,该应用实现没采用任何第三方类库的 ,并且这个应用的UI做得很不错的,值得我们的参考和学习,希望大家可以更加完善这款新闻类的应用吧. 源码下载 ...

随机推荐

  1. Python下读取转换unicode的json格式

    转自: https://blog.csdn.net/felcon/article/details/38524317 JSON(JavaScript Object Notation) 是一种轻量级的数据 ...

  2. Redis 连接命令

    1.AUTH password 验证密码是否正确 2.ECHO message 打印字符串 3.PING 查看服务是否运行 4.QUIT 关闭当前连接 5.SELECT index 切换到指定的数据库

  3. Opencv学习笔记4:Opencv处理调整图片亮度和对比度

    一.理论基础 在数学中我们学过线性理论,在图像亮度和对比度调节中同样适用,看下面这个公式: 在图像像素中其中: 参数f(x)表示源图像像素. 参数g(x) 表示输出图像像素. 参数a(需要满足a> ...

  4. POJ 3155 Hard Life 最大密度子图 最大权闭合图 网络流 二分

    http://poj.org/problem?id=3155 最大密度子图和最大权闭合图性质很相近(大概可以这么说吧),一个是取最多的边一个是取最多有正贡献的点,而且都是有选一种必须选另一种的限制,一 ...

  5. 火狐FoxyProxy配置教程

    原文:http://www.lvtao.net/tool/640.html 虽然autoproxy是火狐上最优秀的代理插件,但是好久不更新,也有一些bug,比如观看youtube视频7分钟左右会无法播 ...

  6. Subsets LeetCode总结

    Subsets 题目 Given a set of distinct integers, nums, return all possible subsets. Note: The solution s ...

  7. CentOS 7挂载磁盘提示: mount: unknown filesystem type 'LVM2_member'

    说明:CentOS 7采用新的分区格式xfs以及LVM的模式,造成挂载硬盘的方式有变化. 解决: 使用lvdisplay命令查看LVM最终的卷路径,然后再进行挂载. 比如: mount /dev/Vo ...

  8. [Dynamic Language] Python非子包引用

    Python非子包引用 python的搜索路径其实是一个列表(sys.path) 导入模块时python会自动去找搜索这个列表当中的路径,如果路径中存在要导入的模块文件则导入成功. 在项目中如果要引用 ...

  9. ldd pvs dis on solaris 10

    #include <QtGui/QApplication> #include <QtGui/QDialog> int main(int argc, char *argv[]) ...

  10. Oracle 11g 错误:ORA-28002: the password will expire within 7 days 解决方法

    ERROR:ORA-28002: the password will expire within 7 days 错误是提示password快过期了,有两个办法解决问题. 一. 改动已经报错用户的pas ...