ScrollView分页-无限循环

#import "XMGInfiniteScrollView.h"

static int const ImageViewCount = 3;

@interface XMGInfiniteScrollView()

@property (weak, nonatomic) UIScrollView *scrollView;

@property (weak, nonatomic) NSTimer *timer;

@[email protected] XMGInfiniteScrollView

- (instancetype)initWithFrame:(CGRect)frame

{    if (self = [super initWithFrame:frame]) {        // 滚动视图        UIScrollView *scrollView = [[UIScrollView alloc] init];        scrollView.showsHorizontalScrollIndicator = NO;        scrollView.showsVerticalScrollIndicator = NO;        scrollView.pagingEnabled = YES;

scrollView.bounces = NO;

scrollView.delegate = self;

[self addSubview:scrollView];

self.scrollView = scrollView;

// 图片控件

for (int i = 0; i- (void)scrollViewDidScroll:(UIScrollView *)scrollView

{    // 找出最中间的那个图片控件

NSInteger page = 0;    CGFloat minDistance = MAXFLOAT;

for (int i = 0; i= self.pageControl.numberOfPages)

{

index = 0;

}

imageView.tag = index;

imageView.image = self.images[index];

}

// 设置偏移量在中间

if (self.isScrollDirectionPortrait) {

self.scrollView.contentOffset = CGPointMake(0, self.scrollView.frame.size.height);

} else {

self.scrollView.contentOffset = CGPointMake(self.scrollView.frame.size.width, 0);

}

}

#pragma mark - 定时器处理

- (void)startTimer

{

NSTimer *timer = [NSTimer timerWithTimeInterval:2 target:self selector:@selector(next) userInfo:nil repeats:YES];

[[NSRunLoop mainRunLoop] addTimer:timer forMode:NSRunLoopCommonModes];

self.timer = timer;

}

- (void)stopTimer

{

[self.timer invalidate];

self.timer = nil;

}

- (void)next

{

if (self.isScrollDirectionPortrait) {

[self.scrollView setContentOffset:CGPointMake(0, 2 * self.scrollView.frame.size.height) animated:YES];

} else {

[self.scrollView setContentOffset:CGPointMake(2 * self.scrollView.frame.size.width, 0) animated:YES];

}

}

@end

时间: 2024-10-26 15:06:48

ScrollView分页-无限循环的相关文章

iOS无限循环滚动scrollview

经常有园友会问"博主,有没有图片无限滚动的Demo呀?", 正儿八经的图片滚动的Demo我这儿还真没有,今天呢就封装一个可以在项目中直接使用的图片轮播.没看过其他iOS图片无限轮播的代码,也不了解他们的原理,我今天封装这个图片无限轮播是借鉴Web前端中的做法,因为之前写Web前端的时候,实现幻灯片就是这么做的,今天就在iPhone上搞搞.下面的东西是自己写的了,关于轮播的东西这个开源项目也是相当不错的https://github.com/nicklockwood/iCarousel ,

UIScrollView实现图片轮播器及其无限循环效果

图片轮播器: 一.实现效果 实现图片的自动轮播            二.实现代码 storyboard中布局 代码: 1 #import "YYViewController.h" 2 3 @interface YYViewController () <UIScrollViewDelegate> 4 @property (weak, nonatomic) IBOutlet UIScrollView *scrollview; 5 /** 6 * 页码 7 */ 8 @prop

IOS开发系列--无限循环的图片浏览器

--UIKit之UIScrollView 概述 UIKit框架中有大量的控件供开发者使用,在iOS开发中不仅可以直接使用这些控件还可以在这些控件的基础上进行扩展打造自己的控件.在这个系列中如果每个控件都介绍一遍确实没有必要,所谓授人以鱼不如授人以渔,这里会尽可能让大家明白其中的原理,找一些典型的控件进行说明,这样一来大家就可以触类旁通.今天我们主要来看一下UIScrollView的内容: UIView UIScrollView 实战--图片浏览器 UIView 在熟悉UIScrollView之前

无限循环滚动视图思路一

一.思路分析 不考虑内存 1.如果有5张图片,可以放7张UIImageView,排列是 4 0 1 2 3 4 0,但图片多时对内存太依赖. 优化内存 1.需要用3个UIImageView来实现即可. 初始状态 - 一开始,把contentoffset设置到中间的那张imageView上,也就是显示中间的imageView,并且以后每次滚动完都会进行这样的设置,这里先记住 - 图中显示的是第0张图片,所以向左滑动显示的肯定是最后一张图片,也就是第4张,同理,右滑是第1张 - 所以,三张image

iOS开发笔记6:图片轮播及其无限循环效果

平时APP中的广告位.或者滚动的新闻图片等用到的就是图片轮播这种效果,实现方式主要有两种,一种是ScrollView+ImageView,另一种则是通过CollectionView,今天总结的是ScrollView这种方式. 1.图片轮播效果实现 主要实现思路是:根据图片总数及宽高设置好ScrollView的大小,每切换一张图片相当于在ScrollView上进行一个图片宽度的移动行为,并加入定时器,实现自动轮播. 如图所示,设置好ScrollView及PageControl,ScrollView

iOS开发——高级篇——图片轮播及其无限循环效果

平时APP中的广告位.或者滚动的新闻图片等用到的就是图片轮播这种效果,实现方式主要有两种,一种是ScrollView+ImageView,另一种则是通过CollectionView,今天总结的是ScrollView这种方式. 1.图片轮播效果实现 主要实现思路是:根据图片总数及宽高设置好ScrollView的大小,每切换一张图片相当于在ScrollView上进行一个图片宽度的移动行为,并加入定时器,实现自动轮播. 如图所示,设置好ScrollView及PageControl,ScrollView

自动无限循环UIScrollView原理

无限循环: 我们都知道UIScrollView有一种很流畅的切换效果,结合UIPageControl的辅助展示效果,就可以完成一个很不错的产品介绍功能页面.那么像一些购物app中,商品展示页面无限滚动的效果是如何实现的呢? 方法1:前后+1方法,这也最常见的一种做法.假如我们有四张需要展示的图片,我们创建了一个数组来保存图片名字,此时数组中保存的是按顺序的1.png,2.png,3.png,4.png,这四个图片名字.要实现无限循环的效果,我们需要改动一下这个数组为:4.png,1.png,2.

renderer_outline_aa::line3()无限循环

情况一: 在该函数出现无限循环在如下两句代码: while(abs(sx - lp.x1) + abs(sy - lp.y1) > lp2.len){sx = (lp.x1 + sx) >> 1;sy = (lp.y1 + sy) >> 1;} 断点调试的时候,出现无限循环的结果是因为取值出现如下的问题: sx=0x3d00lp.x1=0x3d01sy=0x7a00lp.y1=0x7a01lp2.len=1 在这种情况下,sx和sy的值永远不变,并且循环的条件永远成立(whi

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

大家如果喜欢我的博客,请关注一下我的微博,请点击这里(http://weibo.com/kifile),谢谢 转载请标明出处,再次感谢 ####################################################################### 自定义 ViewGroup 支持无限循环翻页系列 自定义 ViewGroup 支持无限循环翻页之一(重写 onLayout以及 dispatchDraw) 自定义 ViewGroup 支持无限循环翻页之二(处理触摸事件)