ScrollView分页-无限循环

本文详细介绍了一个自定义的无限循环ScrollView的实现过程,包括如何创建滚动视图、图片控件的加载与更新,以及通过定时器控制自动滚动。适用于iOS开发中需要无限循环展示图片的场景。

#import "XMGInfiniteScrollView.h"

static int const ImageViewCount = 3;

@interface XMGInfiniteScrollView()

@property (weak, nonatomic) UIScrollView *scrollView;

@property (weak, nonatomic) NSTimer *timer;

@end@implementation 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

转载于:https://www.cnblogs.com/CJH5209/p/6027441.html

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值