首页 > 代码库 > iOS引导页

iOS引导页

我这里是的引导页是viewController

#import <UIKit/UIKit.h>

我这里是将图片都加到了一个bundle的文件里
#define GET_IMAGE_FROM_BUNDLE_PATH(imageName,bundleName) [ResBundleUtils imageNamedFromImagesBundlePNG:imageName withSubPath:bundleName]

//适配3.5寸屏和4寸品的图片名
#define ADAPT_IMAGE_NAME(imageName) (IS_IPHONE_568 ? [NSString stringWithFormat:@"%@-568h", [imageName stringByDeletingPathExtension]]:imageName)


@protocol  UseGuideDelegate <NSObject>

-(void)removeGuideView;

@end

@interface  UseGuideViewController : UIViewController
{
    int currentPage;
    UIPageControl *pageControl;
    UIImageView *guideView;
}
@property(assign,nonatomic) id<UseGuideDelegate> delegate;

@end

实现文件



#import "UseGuideViewController.h"


@interface UseGuideViewController () <UIScrollViewDelegate>

@end

@implementation UseGuideViewController

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        [self initWithGuideView];
    }
    return self;
}

- (void)viewDidLoad
{
    [super viewDidLoad];

}
/**
 *  scrollView
 */
-(void)initWithGuideView
{
    UIScrollView * scroll = [[UIScrollView alloc] initWithFrame:CGRectMake(0,0,self.view.frame.size.width,self.view.frame.size.height)];
    
    scroll.showsHorizontalScrollIndicator = NO;
    scroll.showsVerticalScrollIndicator = NO;
    scroll.backgroundColor=[UIColor clearColor];
    scroll.bounces = NO;
    scroll.delegate=self;
    scroll.pagingEnabled = YES;
    scroll.scrollEnabled = YES;
    scroll.directionalLockEnabled = YES;

    for(int i=0;i<4;i++)
    {
        guideView = [[UIImageView alloc] initWithFrame:CGRectMake(SCREEN_WIDTH*i,0, 320, self.view.frame.size.height)];
        guideView.tag = i+1;
        //if(i==0)
        NSString *imgName = [NSString stringWithFormat:@"bg_intro%d", i+1];
        UIImage  *img= GET_IMAGE_FROM_BUNDLE_PATH(ADAPT_IMAGE_NAME(imgName) ,@"UserGuideImage");
        guideView.image = img;
        guideView.userInteractionEnabled=YES;
        [scroll addSubview:guideView];
        scroll.contentSize = CGSizeMake(SCREEN_WIDTH*(i+1), 0);
        if (guideView.tag==4)
        {
            UITapGestureRecognizer *tapGR=[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(touchDown)];
            [guideView addGestureRecognizer:tapGR];
        }
    }
        
    [self.view addSubview:scroll];
    pageControl=[[UIPageControl alloc]initWithFrame:CGRectMake(0,SCREEN_HEIGHT-50 ,SCREEN_WIDTH, 21)];
    pageControl.backgroundColor=[UIColor clearColor];
    pageControl.numberOfPages=4;
    pageControl.currentPage=0;
    [self.view addSubview:pageControl];

}
/**
 *  pageControl
 *
 *  @param scrollView scrollView
 */
-(void)scrollViewDidScroll:(UIScrollView *)scrollView
{
    CGFloat pageWidth = self.view.frame.size.width;
    int page = floor((scrollView.contentOffset.x - pageWidth / 2) / pageWidth) + 1;
    pageControl.currentPage = page;
    
}
/**
 *  手势方法
 */
-(void)touchDown
{
    if ([self.delegate respondsToSelector:@selector(removeGuideView)])
    {
        [self.delegate removeGuideView];
    }
}
- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end

然后在调用的地方:

#pragma mark - 显示引导页

  if (![[NSUserDefaults standardUserDefaults] boolForKey:@"YES"])
    {
       [self showGuideView];
    }
else

{

//TODO

}

-(void)showGuideView
{
    [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"YES"];
    UseGuideViewController *guideView = [[UseGuideViewController alloc]init];
    guideView.delegate = self;
}

#pragma mark --引导图代理
-(void)removeGuideView
{

//TODO

}