首页 > 代码库 > ScrollView分页-无限循环

ScrollView分页-无限循环

#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

ScrollView分页-无限循环