Git Product home page Git Product logo

dhguidepagehud's Introduction

DHGuidePageHUD

一键合成APP引导页,包含不同状态下的引导页样式,省掉冗余的代码,集成性高,使用方便;

声明: 部分图片来源于网络,如有涉及版权会马上删除,敬请谅解;

效果图展示:

APP静态图片引导页(上) | APP动态图片引导页(下)

有导航栏手动进入体验 有导航栏自动进入体验 无导航栏手动进入体验 无导航栏自动进入体验
有导航栏手动进入体验 有导航栏自动进入体验 无导航栏手动进入体验 无导航栏自动进入体验

V3.0.0版(添加视频引导页)

新增方法说明:

/**
 *  DHGuidePageHUD(视频引导页)
 *
 *  @param frame    位置大小
 *  @param videoURL 引导页视频地址
 *
 *  @return DHGuidePageHUD对象
 */
- (instancetype)dh_initWithFrame:(CGRect)frame videoURL:(NSURL *)videoURL;

使用方式:

1.下载项目或者下载项目中DHGuidePageHUD这个文件,将下载好的文件拖拽到自己的工程文件夹中,并在自己添加APP引导页的类中导入#import "DHGuidePageHUD.h"头文件;

2.初始化图片数组和DHGuidePageHUD库的使用,代码如下:

// 初始化视频URL
NSURL *videoURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"guideMovie1" ofType:@"mov"]];
// 创建并添加引导页
DHGuidePageHUD *guidePage = [[DHGuidePageHUD alloc] dh_initWithFrame:self.view.bounds videoURL:videoURL];
[self.navigationController.view addSubview:guidePage];

V2.1.0版

新增方法说明:

// 设置再次滑动进入APP (注意只有在buttonIsHidden:为YES的时候才有效, 因为为NO是用户可以直接点击按钮进入APP, 增强用户体验)
guidePage.slideInto = YES;

一点点小的改动效果图就不上了,详细可以看代码;

V2.0.0版(添加动态图片引导页)

方法说明:

/**
 *  DHGuidePageHUD
 *
 *  @param frame      位置大小
 *  @param imageArray 引导页图片数组(NSString)
 *  @param isHidden   开始体验按钮是否隐藏(YES:隐藏-引导页完成自动进入APP首页; NO:不隐藏-引导页完成点击开始体验按钮进入APP主页)
 *
 *  @return DHGuidePageHUD对象
 */
- (instancetype)dh_initWithFrame:(CGRect)frame imageNameArray:(NSArray<NSString *> *)imageNameArray buttonIsHidden:(BOOL)isHidden;

使用方式:

1.下载项目或者下载项目中DHGuidePageHUD这个文件,将下载好的文件拖拽到自己的工程文件夹中,并在自己添加APP引导页的类中导入#import "DHGuidePageHUD.h"头文件;

2.初始化图片数组和DHGuidePageHUD库的使用,代码如下:

// 静态引导图片数组初始化
NSArray *imageNameArray = @[@"guideImage1.jpg",@"guideImage2.jpg",@"guideImage3.jpg",@"guideImage4.jpg",@"guideImage5.jpg"];
// 动态引导图片数组初始化
NSArray *imageNameArray = @[@"guideImage6.gif",@"guideImage7.gif",@"guideImage8.gif"];
// 创建并添加引导页
DHGuidePageHUD *guidePage = [[DHGuidePageHUD alloc] dh_initWithFrame:self.view.frame imageNameArray:imageNameArray buttonIsHidden:YES];
[self.navigationController.view addSubview:guidePage];

3.如果在首次进入项目时没有UINavigationController,也可以在[self.window makeKeyAndVisible]之后添加初始化图片数组和DHGuidePageHUD库的操作,代码如下:

// 在window初始化并显示后([self.window makeKeyAndVisible]后)初始化图片数组并添加引导页;
// 静态引导图片数组初始化
NSArray *imageNameArray = @[@"guideImage1.jpg",@"guideImage2.jpg",@"guideImage3.jpg",@"guideImage4.jpg",@"guideImage5.jpg"];
// 动态引导图片数组初始化
NSArray *imageNameArray = @[@"guideImage6.gif",@"guideImage7.gif",@"guideImage8.gif"];
// 创建并添加引导页
DHGuidePageHUD *guidePage = [[DHGuidePageHUD alloc] dh_initWithFrame:self.window.frame imageNameArray:imageNameArray buttonIsHidden:YES];
[self.window addSubview:guidePage];

V1.0.0版(添加静态图片引导页)

方法说明:

/**
 *  DHGuidePageHUD
 *
 *  @param frame      位置大小
 *  @param imageArray 引导页图片数组
 *  @param isHidden   开始体验按钮是否隐藏(YES:隐藏-引导页完成自动进入APP首页; NO:不隐藏-引导页完成点击开始体验按钮进入APP主页)
 *
 *  @return DHGuidePageHUD
 */
- (instancetype)dh_initWithFrame:(CGRect)frame imageArray:(NSArray *)imageArray buttonIsHidden:(BOOL)isHidden;

使用方式:

1.下载项目或者下载项目中DHGuidePageHUD这个文件,将下载好的文件拖拽到自己的工程文件夹中,并在自己添加APP引导页的类中导入#import "DHGuidePageHUD.h"头文件;

2.初始化图片数组和DHGuidePageHUD库的使用,代码如下:

// 初始化图片数组
NSArray *imageArray = @[[UIImage imageNamed:@"guideImage1.jpg"],[UIImage imageNamed:@"guideImage2.jpg"],[UIImage imageNamed:@"guideImage3.jpg"],[UIImage imageNamed:@"guideImage4.jpg"],[UIImage imageNamed:@"guideImage5.jpg"]];
// 创建并添加引导页
DHGuidePageHUD *guidePage = [[DHGuidePageHUD alloc] dh_initWithFrame:self.view.frame imageArray:imageArray buttonIsHidden:YES];
[self.navigationController.view addSubview:guidePage];

3.如果在首次进入项目时没有UINavigationController,也可以在[self.window makeKeyAndVisible]之后添加初始化图片数组和DHGuidePageHUD库的操作,代码如下:

// 在window初始化并显示后([self.window makeKeyAndVisible]后)初始化图片数组并添加引导页;
NSArray *imageArray = @[[UIImage imageNamed:@"guideImage1.jpg"],[UIImage imageNamed:@"guideImage2.jpg"],[UIImage imageNamed:@"guideImage3.jpg"],[UIImage imageNamed:@"guideImage4.jpg"],[UIImage imageNamed:@"guideImage5.jpg"]];
DHGuidePageHUD *guidePage = [[DHGuidePageHUD alloc] dh_initWithFrame:self.window.frame imageArray:imageArray buttonIsHidden:YES];
[self.window addSubview:guidePage];

可能会用到的代码说明:

// 使用NSUserDefaults判断程序是否第一次启动(其他方法也可以)
if (![[NSUserDefaults standardUserDefaults] boolForKey:BOOLFORKEY]) {
        [[NSUserDefaults standardUserDefaults] setBool:YES forKey:BOOLFORKEY];
        // 在这里写初始化图片数组和DHGuidePageHUD库引导页的代码
}

<<分享是一种美德,Star是一种鼓励image>>

dhguidepagehud's People

Contributors

dingding3w avatar ted-ddt avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dhguidepagehud's Issues

欢迎页加在登录页面上

你好,我将你的欢迎页加在登录页面上,登录是要有状态栏的,欢迎页也出现了状态栏,怎么可以隐藏欢迎页的状态栏

你好,首先很感谢大佬无私奉献的精神。

我的项目有TabBarController。我在首页导入你的框架的时候,我把[DHGuidePageHUD alloc] dh_initWithFrame:CGRectMake(0, 0, 屏幕的宽, 屏幕的高)。但是在运行的时候,还是漏出了TabBarController。请问这种情况怎么解决。

关于CurrentPage的状态更新优化

有一个问题,就是ScrollView滑动比较快的时候,其CurrentPage的状态更新比较迟缓。

建考虑优化一下:

#pragma mark - ------------UIScrollView代理方方法------------
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
    // 不在这里设置currentPage --- 因为当滑动比较快速的时候,就出现currentPage更新比较慢
    // [self.imagePageControl setCurrentPage:page];
    // 这里就不用四舍五入了,因为在scroll滚动减速完成时才执行(相当于scroolView滚动静止的那一刻),四舍五入和不四舍五入,效果都一样
    int img_count = (int)self.imageArray.count;
    int page = (int)(scrollView.contentOffset.x / scrollView.frame.size.width);
    if (self.imageArray && page == img_count - 1 && self.slideInto == NO) {
        [self buttonClick:nil];
    }
    if (self.imageArray && page < img_count - 1 && self.slideInto == YES) {
        self.slideIntoNumber = 1;
    }
    if (self.imageArray && page == img_count - 1 && self.slideInto == YES) {
        UISwipeGestureRecognizer * swipeGestureRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:nil action:nil];
        if (swipeGestureRecognizer.direction == UISwipeGestureRecognizerDirectionRight) {
            self.slideIntoNumber++;
            if (self.slideIntoNumber == 3) {
                [self buttonClick:nil];
                // [self handleSingleTapFrom];
            }
        }
    }
}

// 这里也不能设置currentPage,状态无法及时更新
//- (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView
//{
//    int page = (int)(scrollView.contentOffset.x / scrollView.frame.size.width);
//    [self.imagePageControl setCurrentPage:page];
//}

// 2018-06-20 修改:新增一个代理方法,专门用来设置currentPage
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
    // 四舍五入,保证pageControl状态跟随手指滑动刷新
    [self.imagePageControl setCurrentPage:(int)((scrollView.contentOffset.x / scrollView.frame.size.width) + 0.5f)];
}

image

如何在进入主界面的时候清除引导页,避免保留你们demo主界面头部bar信息?

你好,我用你的DHGuidePageHUD 静态图片方式集成了引导页,也能正常运行了,没报错,我的程序是用webview加载H5的,我在webview的前面引入了
// 设置APP引导页
if (![[NSUserDefaults standardUserDefaults] boolForKey:BOOLFORKEY]) {
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:BOOLFORKEY];
// 静态引导页
[self setStaticGuidePage];

    // 动态引导页
    // [self setDynamicGuidePage];
    
    // 视频引导页
    // [self setVideoGuidePage];
}

引导页完点击体验进入了自己主页面,但依然保留你们demo跳转到hello界面顶部的bar,我如何清除这个bar呢?

请问支持横屏吗?

能支持横屏的图片吗?能支持2x,3x不同屏幕使用不同的分辨率图片吗?

gif图为啥不能显示

我从网上找了一张gif图 拉近assets.xcassets
然后在appdelegate里
// 动态引导图片数组初始化
NSArray *imageNameArray = @[@"timg.gif",@"timg.gif"];
// 创建并添加引导页
DHGuidePageHUD *guidePage = [[DHGuidePageHUD alloc] dh_initWithFrame:self.window.frame imageNameArray:imageNameArray buttonIsHidden:YES];
guidePage.slideInto = YES;
[self.window addSubview:guidePage];
但是为什么我的gif图显示不出来 只有灰色的背景??

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.