热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

[iOS]UIPageControl页面翻页循环

UIPageControl页面翻页循环原理:比如桌面上从左到右,有一排10张图片,我们可以把第十张图片复制一份放到第1张图片之前

UIPageControl页面翻页循环

原理:比如桌面上从左到右,有一排10张图片,我们可以把第十张图片复制一份放到第1张图片之前,同时把第一张图片复制一份放置第10张图片之后。那么现在我们就有了12张图片,多添加的两张图片用作移形换位之用,让视觉上只能感受10张图片。

- (void)gmSectionZeroRowZero:(NSArray *)theImgArr andHight:(float)theHight {// 在传回的图片数组的对象个数基础上+2self.ymSVCycle = [theImgArr count]+2;// 为了实现循环,ScrollView 的宽度也要多两个单位self.ymSoRoIV = [[UIScrollView alloc]initWithFrame:CGRectMake(0, 0, 320, theHight)];[self.ymSoRoIV setContentSize:CGSizeMake(320*self.ymSVCycle,theHight )];// 设置ScrollView 的初始偏移[self.ymSoRoIV setContentOffset:CGPointMake(320, 0)];[self.ymSoRoIV setBounces:NO];[self.ymSoRoIV setPagingEnabled:YES];[self.view addSubview:self.ymSoRoIV]; // 设置代理[self.ymSoRoIV setDelegate:self];[self.ymCellView setFrame:CGRectMake(0, 0, 320, theHight)];for (int i = 0 ; i // self.ymPVCFirst.userInteractionEnabled = NO; } // 添加委托 [self.ymPVCFirst addTarget:selfaction:@selector(gmPVCFristAction)forControlEvents:UIControlEventTouchDown];
}#pragma mark UIScrollViewDelegate
// 任何偏移改变
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {CGPoint thePoint = [scrollView contentOffset]; if(thePoint.x / 320 == 0){ self.ymPVCFirst.currentPage = self.ymSVCycle - 2;} else if (thePoint.x / 320 == self.ymSVCycle - 1) { self.ymPVCFirst.currentPage = 0;} else {self.ymPVCFirst.currentPage = thePoint.x / 320 - 1; }
}- (void)scrollViewDidEndDecelerating:(UIScrollView*)scrollView { CGPoint thePoint = [scrollView contentOffset]; if (thePoint.x/320 == self.ymSVCycle-1) { scrollView.contentOffset = CGPointMake(320, 0); self.ymPVCFirst.currentPage = 0; } else if(thePoint.x/320 == 0) {scrollView.contentOffset = CGPointMake((self.ymSVCycle-2)*320, 0); self.ymPVCFirst.currentPage = self.ymSVCycle-2; }
}// UIPageControl关联方法
- (void)gmPVCFristAction {int page = self.ymPVCFirst.currentPage;[self.ymSoRoIVsetContentOffset:CGPointMake(320*page+320, 0)];
}






推荐阅读
  • 本文介绍了在Vue项目中如何结合Element UI解决连续上传多张图片及图片编辑的问题。作者强调了在编码前要明确需求和所需要的结果,并详细描述了自己的代码实现过程。 ... [详细]
  • IhaveconfiguredanactionforaremotenotificationwhenitarrivestomyiOsapp.Iwanttwodiff ... [详细]
  • Oracle seg,V$TEMPSEG_USAGE与Oracle排序的关系及使用方法
    本文介绍了Oracle seg,V$TEMPSEG_USAGE与Oracle排序之间的关系,V$TEMPSEG_USAGE是V_$SORT_USAGE的同义词,通过查询dba_objects和dba_synonyms视图可以了解到它们的详细信息。同时,还探讨了V$TEMPSEG_USAGE的使用方法。 ... [详细]
  • 基于layUI的图片上传前预览功能的2种实现方式
    本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 自动轮播,反转播放的ViewPagerAdapter的使用方法和效果展示
    本文介绍了如何使用自动轮播、反转播放的ViewPagerAdapter,并展示了其效果。该ViewPagerAdapter支持无限循环、触摸暂停、切换缩放等功能。同时提供了使用GIF.gif的示例和github地址。通过LoopFragmentPagerAdapter类的getActualCount、getActualItem和getActualPagerTitle方法可以实现自定义的循环效果和标题展示。 ... [详细]
  • 本文详细介绍了Java中vector的使用方法和相关知识,包括vector类的功能、构造方法和使用注意事项。通过使用vector类,可以方便地实现动态数组的功能,并且可以随意插入不同类型的对象,进行查找、插入和删除操作。这篇文章对于需要频繁进行查找、插入和删除操作的情况下,使用vector类是一个很好的选择。 ... [详细]
  • 前景:当UI一个查询条件为多项选择,或录入多个条件的时候,比如查询所有名称里面包含以下动态条件,需要模糊查询里面每一项时比如是这样一个数组条件:newstring[]{兴业银行, ... [详细]
  • Html5-Canvas实现简易的抽奖转盘效果
    本文介绍了如何使用Html5和Canvas标签来实现简易的抽奖转盘效果,同时使用了jQueryRotate.js旋转插件。文章中给出了主要的html和css代码,并展示了实现的基本效果。 ... [详细]
  • 本文介绍了iOS数据库Sqlite的SQL语句分类和常见约束关键字。SQL语句分为DDL、DML和DQL三种类型,其中DDL语句用于定义、删除和修改数据表,关键字包括create、drop和alter。常见约束关键字包括if not exists、if exists、primary key、autoincrement、not null和default。此外,还介绍了常见的数据库数据类型,包括integer、text和real。 ... [详细]
  • 本文介绍了如何在方法参数中指定一个对象的协议,以及如何调用符合该协议的方法。以一个具体的示例说明了如何在方法参数中指定一个UIView子类对象,并且该对象需要符合PixelUI协议,同时方法需要能够访问该对象的属性。 ... [详细]
  • Redis底层数据结构之压缩列表的介绍及实现原理
    本文介绍了Redis底层数据结构之压缩列表的概念、实现原理以及使用场景。压缩列表是Redis为了节约内存而开发的一种顺序数据结构,由特殊编码的连续内存块组成。文章详细解释了压缩列表的构成和各个属性的含义,以及如何通过指针来计算表尾节点的地址。压缩列表适用于列表键和哈希键中只包含少量小整数值和短字符串的情况。通过使用压缩列表,可以有效减少内存占用,提升Redis的性能。 ... [详细]
  • 涉及的知识点-ViewGroup的测量与布局-View的测量与布局-滑动冲突的处理-VelocityTracker滑动速率跟踪-Scroller实现弹性滑动-屏幕宽高的获取等实现步 ... [详细]
  • ICRA2019最佳论文  Making Sense of Vision and Touch: SelfSupervised Learning of Multimodal Representatio
    文章目录摘要模型架构模态编码器自监督预测控制器设计策略学习控制器设计实验结论和展望会议:ICRA2019标题:《MakingSenseofVision ... [详细]
author-avatar
珠珠VS胖胖
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有