博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
swift--添加新手引导页
阅读量:6841 次
发布时间:2019-06-26

本文共 5564 字,大约阅读时间需要 18 分钟。

swift和oc逻辑上都是一样的,只是写法不一样,可以使用一个view,也可以使用一个viewController,两种都可以的,使用view注意初始化的时候给他一个frame,vc的话,直接在本控制器里面写控制即可!

 

1,创建一个vc,然后在里面初始化一个scrollview,升值contentsize为3 * 页面宽度,然后添加图片,最后可以实现相应的代理方法,判断最后是点击进入主页,还是滑动

具体代码如下:

import UIKitclass hDisplayViewController: UIViewController,UIScrollViewDelegate {        //页面数量    var numOfPages = 3        override func viewDidLoad() {        super.viewDidLoad()        let frame = self.view.bounds        //scrollView的初始化        let scrollView = UIScrollView()        scrollView.frame = self.view.bounds        scrollView.delegate = self        //为了能让内容横向滚动,设置横向内容宽度为3个页面的宽度总和        scrollView.contentSize = CGSize(width:frame.size.width * CGFloat(numOfPages),                                        height:frame.size.height)        print("\(frame.size.width*CGFloat(numOfPages)),\(frame.size.height)")        scrollView.isPagingEnabled = true        scrollView.showsHorizontalScrollIndicator = false        scrollView.showsVerticalScrollIndicator = false        scrollView.scrollsToTop = false        for i in 0..
twidth {// let mainStoryboard = UIStoryboard(name:"Main", bundle:nil)// let viewController = mainStoryboard.instantiateInitialViewController()// self.present(MainVC(), animated: true, completion: nil) let rootVC = UIApplication.shared.delegate as! AppDelegate             rootVC.window?.rootViewController = MainVC() } }}

2,在appdelegate里面写如下代码,判断是否第一次安装,

//这里判断是否第一次启动APP        if (!(UserDefaults.standard.bool(forKey: "everLaunched"))) {            UserDefaults.standard.set(true, forKey:"everLaunched")            let guideViewController = hDisplayViewController()            self.window!.rootViewController=guideViewController;            print("guideview launched!")        }

如下图:

这样就完成了!

下面分享一个oc版的:

.h

@interface hDisplayView : UIView

.m :注意实现代理方法,判断偏移量或者其他的都行,因为是view,也可以添加手机或者按钮(建议frame是全屏幕大小的),然后实现响应事件隐藏就行了!

#import "hDisplayView.h"@interface hDisplayView ()
{ UIScrollView *_bigScrollView; NSMutableArray *_imageArray; UIPageControl *_pageControl;}@end@implementation hDisplayView-(instancetype)initWithFrame:(CGRect)frame{ self = [super initWithFrame:frame]; if (self) { _imageArray = [@[@"闪屏1.png",@"闪屏2.png", @"闪屏3.png",@"闪屏4.png"]mutableCopy]; // _imageArray = [NSMutableArray arrayWithObjects:@"闪屏1.png",@"闪屏2.png", @"闪屏3.png",@"闪屏4.png", nil]; UIScrollView *scrollView = [[UIScrollView alloc]initWithFrame:CGRectMake(0, 0, MainScreen_width, MainScreen_height)]; scrollView.contentSize = CGSizeMake((_imageArray.count + 1)*MainScreen_width, MainScreen_height); //设置反野效果,不允许反弹,不显示水平滑动条,设置代理为自己 scrollView.pagingEnabled = YES;//设置分页 scrollView.bounces = NO; scrollView.showsHorizontalScrollIndicator = NO; scrollView.delegate = self; [self addSubview:scrollView]; _bigScrollView = scrollView; for (int i = 0; i < _imageArray.count; i++) { UIImageView *imageView = [[UIImageView alloc]init]; imageView.frame = CGRectMake(i * MainScreen_width, 0, MainScreen_width, MainScreen_height); UIImage *image = [UIImage imageNamed:_imageArray[i]]; imageView.image = image; [scrollView addSubview:imageView]; } UIPageControl *pageControl = [[UIPageControl alloc]initWithFrame:CGRectMake(MainScreen_width/2, MainScreen_height - 60, 0, 40)]; pageControl.numberOfPages = _imageArray.count; pageControl.backgroundColor = [UIColor clearColor]; [self addSubview:pageControl]; _pageControl = pageControl; //添加手势 UITapGestureRecognizer *singleRecognizer; singleRecognizer = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(handleSingleTapFrom)]; singleRecognizer.numberOfTapsRequired = 1; [scrollView addGestureRecognizer:singleRecognizer]; } return self;}-(void)handleSingleTapFrom{ if (_pageControl.currentPage == 3) { self.hidden = YES; }}-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{ if (scrollView == _bigScrollView) { 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) *MainScreen_width) { self.hidden = YES; } }

调用:

if (![[NSUserDefaults standardUserDefaults] boolForKey:@"everLaunched"]) {        [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"everLaunched"];        [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"firstLaunch"];    }    else{        [[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"firstLaunch"];    }        if ([[NSUserDefaults standardUserDefaults] boolForKey:@"firstLaunch"]) {        // 这里判断是否第一次                hDisplayView *hvc = [[hDisplayView alloc]initWithFrame:CGRectMake(0, 0, MainScreen_width, MainScreen_height)];                [self.window.rootViewController.view addSubview:hvc];                [UIView animateWithDuration:0.25 animations:^{            hvc.frame = CGRectMake(0, 0, MainScreen_width, MainScreen_height);                    }];            }

然后就可以了!

比较简单,只在此记录下!

转载于:https://www.cnblogs.com/hero11223/p/7666086.html

你可能感兴趣的文章