我们在第一次打开App的时候,通常不是直接进入App主界面,而是会有一个能左右滑动、介绍App功能的界面。我是用NSUserDefaults + UIScrollview实现。
新建一个类,继承UIView,假设名为Guide。在initWithFrame方法里:

  CGFloat screenHeight = [UIScreen mainScreen].bounds.size.height;
UIScrollView* scrollView = [[UIScrollView alloc] initWithFrame:frame];
scrollView.backgroundColor = [UIColor whiteColor];
scrollView.showsHorizontalScrollIndicator = NO;
scrollView.showsVerticalScrollIndicator = NO;
scrollView.contentSize = CGSizeMake(320*4, screenHeight);
scrollView.pagingEnabled = YES;
for (int i=0; i<4; i++) {
UIImageView* imageView = [[UIImageView alloc initWithFrame:CGRectMake(i*320, 0, 320, screenHeight)];
imageView.contentMode = UIViewContentModeScaleAspectFill; NSString *filePath = [[NSBundle mainBundle] pathForResource:
[NSString stringWithFormat:@"FileName"
ofType:@"FileType"];
imageView.image = [UIImage imageWithContentsOfFile:filePath];
[scrollView addSubview:imageView];
if (i == 3) {
UIButton* start = [UIButton buttonWithType:UIButtonTypeCustom];
start.frame = CGRectMake(0, 0, 100, 44);
start.layer.cornerRadius = 5;
start.layer.borderWidth = 0.5;
[start setCenter:CGPointMake(1120, iPhone5?450:400)];
[start setTitleColor:[UIColor grayColor] forState:UIControlStateNormal];
[start addTarget:self action:@selector(closeView) forControlEvents:UIControlEventTouchUpInside];
[start setTitle:@"Start" forState:UIControlStateNormal];
[scrollView addSubview:start];
}

这样,就有了一个有4张图片的引导页。
怎么去判断是不是第一次登陆呢,需要用到NSUserDefaults类。
在didFinishLaunchingWithOptions:函数中可以这样判断:

NSUserDefaults* userDefaults = [NSUserDefaults standardUserDefaults];
if([userDefaults objectForKey:@"FirstLoad"] == nil) {
[userDefaults setBool:NO forKey:@"FirstLoad"];
//显示引导页
}

IOS引导页的编写的更多相关文章

  1. iOS 引导页组件 HcdGuideView

    HcdGuideView HcdGuideView让你为你的app添加一个漂亮的启动页变得简单. 要求 Xcode 6 or higher iOS 7.0 or higher ARC 安装方法 手动安 ...

  2. IOS引导页拨动4张图片最后一张停三秒进入主页,页面推送

    // //  ViewController.m // // //  Created by 张艳锋 on 15/8/26. //  Copyright (c) 2015年 张艳锋. All rights ...

  3. iOS 引导页

    1. 目标需求 引导页无限轮播,且轮播到最后一张时没有跳转到头一个的感觉 pageControl的显示为可选项 是否无限轮播为可选项 手动切换图片,并再次启动自动轮转 实现点击事件 2. 实现思路 初 ...

  4. iOS引导页(镂空效果)

    推荐使用SDK:pod 'EAFeatureGuideView' 温馨提示:(引导的图片图标需要私人订制的可以用自己的,让UI提供) 参考链接:https://www.jianshu.com/p/c9 ...

  5. ios引导页 设定以及 图片尺寸

      iphone的屏幕尺寸有着几种: iphone 4/4s: 3.5 寸 分辨率:640X960 高宽比 640/960 = 1.5 iphone 5/5c/5s:4 寸 分辨率:640X1136  ...

  6. 关于iOS引导页图层的相关属性类

    关键字:CABasicAnimation 参考链接:https://blog.csdn.net/Dwarven/article/details/42492199 Layer.mask属性用法: htt ...

  7. iOS引导页(开局滚动效果)

    参考链接1:https://jingyan.baidu.com/article/4dc40848a341dfc8d846f152.html 参考链接2:https://www.cnblogs.com/ ...

  8. Sagit.Framework For IOS 开发框架入门开发教程2:一行代码实现引导页

    前言: 开篇比较简单:Sagit.Framework For IOS 开发框架入门开发教程1:框架下载与环境配置 第二篇教程之前写了一半,感觉不太好写,而且内容单纯介绍API,要说的很多,又枯燥乏味. ...

  9. iOS App引导页功能实现

    一.写作原因 以前都没有想着来写点东西,今天遇到件事情让我决定每次还是要做记录.因为以前自己可以轻松的完成pod spec的配置,但是今天在做的时候还是忘了遇到了很多坑.pod spec配置遇到的坑不 ...

随机推荐

  1. JavaSE学习总结第10天_面向对象5

      10.01 运动员和教练案例分析 教练和运动员案例:运动员分乒乓球运动员和篮球运动员,教练分乒乓球教练和篮球教练.为了出国交流,跟乒乓球相关的人员都需要学习英语. 分析: 10.02 运动员和教练 ...

  2. VJGUI消息设计-兼谈MFC、QT和信号/槽机制

    星期六下午4点,还在公司加班.终于写完了下周要交工的一个程序. 郁闷,今天这几个小时写了有上千行代码吧?虽然大部分都是Ctrl-C+Ctrl-V,但还是郁闷. 作为一个有10年经验的MFC程序员,郁闷 ...

  3. kinect for windows - DepthBasics-D2D详解之一

    Depth在kinect中经常被翻译为深度图,指的是图像到摄像头的距离,这些距离数据能让机器知道物理距离有多远.kinect通过两个红外摄像头来实现这个功能的.在这个例子里,就实现了深度图的提取和现实 ...

  4. JAVA GUI学习 - 窗体背景图片设置方法:重写paintComponent(Graphics g)方法

    public class BackgroundImage extends JFrame { public BackgroundImage() { this.setTitle("窗体背景图片设 ...

  5. Uva 511 Updating a Dictionary

    大致题意:用{ key:value, key:value, key:value }的形式表示一个字典key表示建,在一个字典内没有重复,value则可能重复 题目输入两个字典,如{a:3,b:4,c: ...

  6. BZOJ 1324: Exca王者之剑

    1324: Exca王者之剑 Description Input 第一行给出数字N,M代表行列数.N,M均小于等于100 下面N行M列用于描述数字矩阵 Output 输出最多可以拿到多少块宝石 Sam ...

  7. 密钥登录linux

    一.linux 主机A登录linux主机B 在/etc/hosts文件下加入:(做硬解析) 192.168.1.60 u60 #设置u60为主机名 在节点A上创建RSA秘钥:(A上生成A主机密钥) # ...

  8. 【SQL】行转列过滤,使用别名和不使用别名的区别用法。

    需求为: 仿太平洋网站筛选. 多选类型的字段应采用‘并且’:单选和录入类型的字段应采用‘或者’ 比如有如下选项: 参数头 参数体 操作系统(多选) win7 win8 运行内存(单选) 2G 4G 商 ...

  9. 使用ActionBar实现Tab导航(快速生成Tab样式)

    效果如图: MainActivity.java具体实现: package com.rainmer.actionbartab; import android.app.ActionBar; import ...

  10. TTL电平与RS232电平的区别

    TTL电平与RS232电平的区别   工作中遇到一个关于电平选择的问题,居然给忘记RS232电平的定义了,当时无法反应上来,回来之后查找资料才了解两者之间的区别,视乎两年多的时间,之前非常熟悉的一些常 ...