// // MyIntroductionViewController.m // Ifish // // Created by imac on 15/11/26. // Copyright © 2015年 imac. All rights reserved. // #import "MyIntroductionViewController.h" #define kGoButtonHeight 60 #define kGoButtonDefaultTitle @"" ///#define kBackColor [UIColor colorWithRed:0 green:157.f/255 blue:232.f/255 alpha:1] #define kGoButtonBackColor [UIColor colorWithRed:0 green:109.f/255 blue:205.f/255 alpha:0.48] #import "AppDelegate.h" #import "RegistViewController.h" static MyIntroductionViewController * introduction = nil; @interface MyIntroductionViewController () { NSArray * _imageNames; NSArray * _titles; NSArray * _contents; NSInteger _page; // void ((^_goActionBlock)(void)); } @property(nonatomic,strong)NSMutableArray * imageViews; @property(nonatomic,strong)UIScrollView * scrollView; @property(nonatomic,strong)UIPageControl * pageControl; @property(nonatomic,strong)UIButton * goButton; @property(nonatomic,strong)UILabel * titleLable; @property(nonatomic,strong)UILabel * contentLable; @property(nonatomic,strong)UIButton*startbutton; @end @implementation MyIntroductionViewController -(instancetype)init{ self = [super init]; if (self) { [self initData]; [self configViews]; } return self; } -(void)initData{ self.introductionStyle = LXIntroductionStyleAllPageGoButton; } -(void)configViews{ self.view.backgroundColor=COLOR_BACK_; [self.view addSubview:self.scrollView]; [self.view addSubview:self.goButton]; } -(void)setPage:(NSInteger)page{ _page = page; [self setUpTitleLabel]; [self setUpContentLabel]; self.pageControl.currentPage = _page; } -(void)setUpTitleLabel{ self.titleLable.text = self.titles[self.page]; } -(void)setHiddenPageControl:(BOOL)hiddenPageControl{ self.pageControl.hidden=hiddenPageControl; } -(void)setIntroductionStyle:(LXIntroductionStyle)introductionStyle{ switch (introductionStyle) { case LXIntroductionStyleAllPageGoButton: { [self.view addSubview:self.goButton]; } break; case LXIntroductionStyleFullScreenGoButton: { UIImageView * imgV = self.imageViews.lastObject; self.goButton.frame = CGRectMake(0, 0, self.scrollView.bounds.size.width, self.scrollView.bounds.size.height); [self.goButton setTitle:@"" forState:UIControlStateNormal]; [imgV addSubview:self.goButton]; self.goButton.backgroundColor=[UIColor clearColor]; } break; case LXIntroductionStyleLastPageGoButton: { UIImageView * imgV = self.imageViews.lastObject; [imgV addSubview:self.goButton]; } break; default: break; } } -(void)setUpScrollView{ self.scrollView.contentSize = CGSizeMake(self.scrollView.bounds.size.width*self.imageNames.count, self.scrollView.bounds.size.height); self.scrollView.bounces=NO; //views for (int i=0; iself.scrollView.frame.size.width) { frame.size.width = self.scrollView.bounds.size.width; frame.size.height = frame.size.width * oldH / oldW; imgV.frame = frame; } imgV.center = CGPointMake((i+0.5)*self.scrollView.bounds.size.width, self.scrollView.bounds.size.height/2); [self.scrollView addSubview:imgV]; [self.imageViews addObject:imgV]; } } -(NSMutableArray *)imageViews{ if (!_imageViews) { _imageViews = [NSMutableArray array]; } return _imageViews; } -(NSInteger)page{ return _page; } -(void)setImageNames:(NSArray *)imageNames{ if (imageNames) { _imageNames = imageNames; [self setUpScrollView]; self.pageControl.numberOfPages = _imageNames.count; } } -(void)setTitles:(NSArray *)titles{ if (titles) { _titles =titles; [self setUpTitleLabel]; } } -(NSArray *)titles{ return _titles; } -(void)setContents:(NSArray *)contents{ if (contents) { _contents = contents; [self setUpContentLabel]; } } -(NSArray *)contents{ return _contents; } -(void)setUpContentLabel{ self.contentLable.text = self.contents[self.page]; } -(NSArray *)imageNames{ return _imageNames; } -(UIScrollView *)scrollView{ if (!_scrollView ) { _scrollView = [[UIScrollView alloc]initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height)]; _scrollView.pagingEnabled=true; _scrollView.delegate=self; _scrollView.showsHorizontalScrollIndicator=false; _scrollView.showsVerticalScrollIndicator=false; } return _scrollView; } -(UIButton *)goButton{ if (!_goButton) { _goButton = [UIButton buttonWithType:UIButtonTypeCustom]; [_goButton setTitle:kGoButtonDefaultTitle forState:UIControlStateNormal]; [_goButton setTitleColor:[UIColor lightTextColor] forState:UIControlStateHighlighted]; _goButton.frame = CGRectMake(30,kScreenSize.height/2+40,kScreenSize.width-60,100); _goButton.tintColor=[UIColor whiteColor]; [_goButton addTarget:self action:@selector(goButtonClick:) forControlEvents:UIControlEventTouchUpInside]; _goButton.backgroundColor =[UIColor clearColor]; } return _goButton; } -(UILabel *)titleLable{ if (!_titleLable) { _titleLable = [[UILabel alloc]initWithFrame:CGRectMake(0, kGoButtonHeight, self.scrollView.frame.size.width, kGoButtonHeight)]; _titleLable.textColor=[UIColor whiteColor]; _titleLable.font = [UIFont boldSystemFontOfSize:36]; _titleLable.textAlignment=NSTextAlignmentCenter; [self.view addSubview:_titleLable]; } return _titleLable; } -(UILabel *)contentLable{ if (!_contentLable) { _contentLable = [[UILabel alloc]initWithFrame:CGRectMake(0, self.goButton.frame.origin.y-kGoButtonHeight, self.scrollView.bounds.size.width, kGoButtonHeight)]; _contentLable.textColor=[UIColor whiteColor]; _contentLable.font = [UIFont boldSystemFontOfSize:16]; _contentLable.textAlignment=NSTextAlignmentCenter; [self.view addSubview:_contentLable]; } return _contentLable; } -(UIPageControl *)pageControl{ if (!_pageControl) { _pageControl = [[UIPageControl alloc]initWithFrame:CGRectMake(0, kGoButtonHeight, self.view.bounds.size.width, kGoButtonHeight)]; _pageControl.currentPage = 0; [self.view addSubview:_pageControl]; } return _pageControl; } -(void)goButtonClick:(id)sender{ if (self.goActionCallBack) { self.goActionCallBack(self); } } -(void)goButtonActionBlock:(void (^)(void))goButtonActionBlock{ self.goActionCallBack = nil; self.goActionCallBack = [goButtonActionBlock copy]; } //MARK: - scrollView delegate //结束滚动 -(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{ [self dismissLabel]; } //MARK: - 动画部分 -(void)dismissLabel{ [UIView animateWithDuration:0.25 delay:0 options:UIViewAnimationOptionCurveEaseIn animations:^{ self.titleLable.alpha=0; self.contentLable.alpha=0; } completion:^(BOOL finished) { [self showLabel]; self.page = self.scrollView.contentOffset.x / self.scrollView.bounds.size.width; }]; } -(void)showLabel{ [UIView animateWithDuration:0.25 delay:0 options:UIViewAnimationOptionCurveEaseIn animations:^{ self.titleLable.alpha=1; self.contentLable.alpha=1; } completion:^(BOOL finished) { }]; } +(MyIntroductionViewController *)shareIntrduction{ if (!introduction) { introduction= [[MyIntroductionViewController alloc]init]; } return introduction; } +(instancetype)showIntroductionWithTitles:(NSArray *)titles contents:(NSArray *)contents imageNames:(NSArray *)imageNames style:(LXIntroductionStyle)introductionStyle goButtonActionBlock:(GoActionBack)goButtonActionBlock{ MyIntroductionViewController * intrVC = [MyIntroductionViewController shareIntrduction]; intrVC.titles = titles; intrVC.contents = contents; intrVC.imageNames = imageNames; intrVC.introductionStyle = introductionStyle; intrVC.goActionCallBack = goButtonActionBlock; return intrVC; } @end