#import "WPLIntroducePageView.h"
#define ScreenW [UIScreen mainScreen].bounds.size.width
#define ScreenH [UIScreen mainScreen].bounds.size.height
@interface WPLIntroducePageView() <UIScrollViewDelegate>
@property(nonatomic,strong)UIScrollView *scrollView;
@property(nonatomic)NSArray *imageArray;
@property(nonatomic,strong)UIPageControl *pageControl;
@end
@implementation WPLIntroducePageView
-(instancetype)initIntroducePagesViewWithFrame:(CGRect)frame Images:(NSArray *)images
{
if (self = [super initWithFrame:frame]) {
self.imageArray=images;
[self loadPageView];
}
return self;
}
-(void)loadPageView
{
UIScrollView *scrollView = [[UIScrollView alloc]initWithFrame:CGRectMake(0, 0, ScreenW, ScreenH)];
scrollView.contentSize = CGSizeMake((_imageArray.count + 1)*ScreenW, ScreenH);
scrollView.pagingEnabled = YES;
scrollView.bounces = NO;
scrollView.showsHorizontalScrollIndicator = NO;
scrollView.delegate = self;
[self addSubview:scrollView];
self.scrollView = scrollView;
for (int i = 0; i < _imageArray.count; i++) {
UIImageView *imageView = [[UIImageView alloc]init];
imageView.frame = CGRectMake(i *ScreenW, 0, ScreenW, ScreenH);
UIImage *image = [UIImage imageNamed:_imageArray[i]];
imageView.image = image;
[scrollView addSubview:imageView];
}
UIPageControl *pageControl = [[UIPageControl alloc]initWithFrame:CGRectMake(ScreenW/2, ScreenH - 60, 0, 40)];
UIColor *c1 = [UIColor colorWithRed:31/255.0 green:163/255.0 blue:236/255.0 alpha:1];
pageControl.numberOfPages = _imageArray.count;
[pageControl setPageIndicatorTintColor:[UIColor lightGrayColor]];
pageControl.currentPageIndicatorTintColor =c1;
[self addSubview:pageControl];
_pageControl = pageControl;
UITapGestureRecognizer *singleRecognizer;
singleRecognizer = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(handleSingleTapFrom)];
singleRecognizer.numberOfTapsRequired = 1;
[scrollView addGestureRecognizer:singleRecognizer];
}
-(void)handleSingleTapFrom
{
if (_pageControl.currentPage == self.imageArray.count-1) {
[self removeFromSuperview];
}
}
-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
if (scrollView == _scrollView) {
CGPoint offSet = scrollView.contentOffset;
_pageControl.currentPage = offSet.x/(self.bounds.size.width);
[scrollView setContentOffset:CGPointMake(self.bounds.size.width * (_pageControl.currentPage), scrollView.contentOffset.y) animated:YES];
}
if (scrollView.contentOffset.x == (_imageArray.count) *ScreenW) {
[self removeFromSuperview];
}
}
@end