Initial commit
This commit is contained in:
@@ -0,0 +1,264 @@
|
||||
//
|
||||
// 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 ()<UIScrollViewDelegate>
|
||||
{
|
||||
|
||||
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; i<self.imageNames.count; i++) {
|
||||
UIImageView * imgV = [[UIImageView alloc]initWithImage:[UIImage imageNamed:self.imageNames[i]]];
|
||||
imgV.userInteractionEnabled=true;
|
||||
CGRect frame = imgV.frame;
|
||||
CGFloat oldH = imgV.bounds.size.height;
|
||||
CGFloat oldW = imgV.bounds.size.width;
|
||||
if (frame.size.width>self.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
|
||||
Reference in New Issue
Block a user