// // LMJIntroductoryPagesView.m // iOSProject // // Created by windshan on 2017/12/29. // Copyright © 2017年 windshan. All rights reserved. // #import "LMJIntroductoryPagesView.h" @interface LMJIntroductoryPagesView () /** <#digest#> */ @property (nonatomic, strong) NSArray *imagesArray; @property (nonatomic,strong) UIPageControl *pageControl; /** <#digest#> */ @property (weak, nonatomic) UIScrollView *scrollView; @end @implementation LMJIntroductoryPagesView + (instancetype)pagesViewWithFrame:(CGRect)frame images:(NSArray *)images { LMJIntroductoryPagesView *pagesView = [[self alloc] initWithFrame:frame]; pagesView.imagesArray = images; return pagesView; } - (void)setupUIOnce { self.backgroundColor = [UIColor clearColor]; //添加手势 UITapGestureRecognizer *singleRecognizer; singleRecognizer = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(handleSingleTapFrom)]; singleRecognizer.numberOfTapsRequired = 1; [self.scrollView addGestureRecognizer:singleRecognizer]; } - (void)setImagesArray:(NSArray *)imagesArray { _imagesArray = imagesArray; [self loadPageView]; } - (void)loadPageView { [self.scrollView.subviews makeObjectsPerformSelector:@selector(removeFromSuperview)]; self.scrollView.contentSize = CGSizeMake((self.imagesArray.count + 1) * kScreenWidth, kScreenHeight); self.pageControl.numberOfPages = self.imagesArray.count; [self.imagesArray enumerateObjectsUsingBlock:^(NSString * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { YYAnimatedImageView *imageView = [[YYAnimatedImageView alloc]init]; imageView.frame = CGRectMake(idx * kScreenWidth, 0, kScreenWidth, kScreenHeight); YYImage *image = [YYImage imageNamed:obj]; [imageView setImage:image]; [self.scrollView addSubview:imageView]; }]; } -(void)handleSingleTapFrom { if (_pageControl.currentPage == self.imagesArray.count-1) { [self removeFromSuperview]; } } - (void)scrollViewDidScroll:(UIScrollView *)scrollView { CGPoint offSet = scrollView.contentOffset; NSInteger page = (offSet.x / (self.bounds.size.width) + 0.5); self.pageControl.currentPage = page;//计算当前的页码 self.pageControl.hidden = (page > self.imagesArray.count - 1); } -(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView { if (scrollView.contentOffset.x >= (_imagesArray.count) * kScreenWidth) { [self removeFromSuperview]; } } - (UIScrollView *)scrollView { if(!_scrollView) { UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:self.bounds]; [self addSubview:scrollView]; scrollView.backgroundColor = [UIColor clearColor]; scrollView.pagingEnabled = YES;//设置分页 scrollView.bounces = NO; scrollView.showsHorizontalScrollIndicator = NO; scrollView.delegate = self; _scrollView = scrollView; } return _scrollView; } - (UIPageControl *)pageControl { if(!_pageControl) { UIPageControl *pageControl = [[UIPageControl alloc]initWithFrame:CGRectMake(kScreenWidth/2, kScreenHeight - 60, 0, 40)]; pageControl.backgroundColor = [UIColor RandomColor]; pageControl.pageIndicatorTintColor = [UIColor RandomColor]; pageControl.currentPageIndicatorTintColor = [UIColor RandomColor]; [self addSubview:pageControl]; _pageControl = pageControl; } return _pageControl; } - (instancetype)initWithFrame:(CGRect)frame { if (self = [super initWithFrame:frame]) { [self setupUIOnce]; } return self; } - (void)awakeFromNib { [super awakeFromNib]; [self setupUIOnce]; } - (void)layoutSubviews { [super layoutSubviews]; } @end