iOS App初次启动时的用户引导页制作实例分享

iOS App初次启动时的用户引导页制作实例分享

作者:老初 字体:[增加 减小] 类型:转载 时间:2016-03-09我要评论

这篇文章主要介绍了iOS App初次启动时的用户引导页制作实例分享,其中判断程序是否是第一次或版本更新以后第一次启动是一个关键点,需要的朋友可以参考下

应用程序APP一般都有引导页,引导页可以作为操作指南指导用户熟悉使用;也可以展现给用户,让用户了解APP的功能作用。引导页制作简单,一般只需要一组图片,再把图片组展现出来就可以了。展示图片组常用UIScrollView来分页显示,并且由UIPageControl页面控制器控制显示当前页。UIScrollView和UIPageControl搭配会更加完美地展现引导页的功能作用。下面我们来看具体的实例:

我们用NSUserDefaults类来判断程序是不是第一次启动或是否更新,在 AppDelegate.swift中加入以下代码:

复制代码 代码如下:

func application(application:
UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject:
AnyObject]?) -> Bool {

// 得到当前应用的版本号
    let infoDictionary =
NSBundle.mainBundle().infoDictionary
    let currentAppVersion =
infoDictionary!["CFBundleShortVersionString"] as! String

// 取出之前保存的版本号
    let userDefaults =
NSUserDefaults.standardUserDefaults()
    let appVersion =
userDefaults.stringForKey("appVersion")

let storyboard = UIStoryboard(name: "Main", bundle: nil)

// 如果 appVersion 为 nil 说明是第一次启动;如果 appVersion 不等于 currentAppVersion
说明是更新了
    if appVersion == nil || appVersion != currentAppVersion
{
        // 保存最新的版本号
        userDefaults.setValue(currentAppVersion,
forKey: "appVersion")

let guideViewController =
storyboard.instantiateViewControllerWithIdentifier("GuideViewController") as!
GuideViewController
        self.window?.rootViewController =
guideViewController
    }

return
true
}

在GuideViewController中,我们用UIScrollView来装载我们的引导页:

复制代码
代码如下:

class GuideViewController: UIViewController
{

@IBOutlet weak var pageControl: UIPageControl!
    @IBOutlet weak var
startButton: UIButton!

private var scrollView: UIScrollView!

private let numOfPages = 3

override func viewDidLoad() {
        super.viewDidLoad()

let frame = self.view.bounds

scrollView = UIScrollView(frame: frame)
       
scrollView.pagingEnabled = true
       
scrollView.showsHorizontalScrollIndicator = false
       
scrollView.showsVerticalScrollIndicator = false
       
scrollView.scrollsToTop = false
        scrollView.bounces = false
       
scrollView.contentOffset = CGPointZero
        // 将 scrollView 的 contentSize
设为屏幕宽度的3倍(根据实际情况改变)
        scrollView.contentSize = CGSize(width:
frame.size.width * CGFloat(numOfPages), height: frame.size.height)

scrollView.delegate = self

for index  in 0..<numOfPages {
            //
这里注意图片的命名
            let imageView = UIImageView(image: UIImage(named:
"GuideImage\(index + 1)"))
            imageView.frame = CGRect(x:
frame.size.width * CGFloat(index), y: 0, width: frame.size.width, height:
frame.size.height)
            scrollView.addSubview(imageView)
       
}

self.view.insertSubview(scrollView, atIndex: 0)

// 给开始按钮设置圆角
        startButton.layer.cornerRadius =
15.0
        // 隐藏开始按钮
        startButton.alpha = 0.0
    }

// 隐藏状态栏
    override func prefersStatusBarHidden() -> Bool
{
        return true
   
}
}

最后我们让GuideViewController遵循UIScrollViewDelegate协议,在这里判断是否滑动到最后一张以显示进入按钮:

复制代码
代码如下:

// MARK: -
UIScrollViewDelegate
extension GuideViewController: UIScrollViewDelegate
{
    func scrollViewDidScroll(scrollView: UIScrollView) {
        let
offset = scrollView.contentOffset
        // 随着滑动改变pageControl的状态
       
pageControl.currentPage = Int(offset.x / view.bounds.width)

// 因为currentPage是从0开始,所以numOfPages减1
        if
pageControl.currentPage == numOfPages - 1 {
           
UIView.animateWithDuration(0.5) {
                self.startButton.alpha =
1.0
            }
        } else {
           
UIView.animateWithDuration(0.2) {
                self.startButton.alpha =
0.0
            }
        }
   
}
}

在上面的代码中,为了显得自然我们给进入按钮加入了一点动画 :]

最终效果如下:

如对本文有疑问,请提交到交流社区,广大热心网友会为你解答!! 点击进入社区

时间: 2024-10-21 07:08:30

iOS App初次启动时的用户引导页制作实例分享的相关文章

怎样做一个iOS App的启动分层引导动画?

一. 为什么要写这篇文章? 这是一个很古老的话题,从两年前新浪微博开始使用多层动画制作iOS App的启动引导页让人眼前一亮(当然,微博是不是历史第一个这个问题值得商榷)之后,各种类型的引导页层出不穷,到如今,github上也有了各种的成型的library存在供选择,同时不少app也已经慢慢的开始返璞归真回归单一静态引导页.虽然时尚的潮流不停的在变化,但是我一直在思索,这种多图层的启动引导动画到底是什么个结构?实现起来究竟有多难?本文,将试图探寻这个话题. 二. 我们要做成什么样子的? 首先定下

Android用户引导页实现,圆点实现动画效果

当前市面上比较流行的应用,用户引导页已经是一个必不可缺的功能点了,简单的介绍下应用的基础功能或者版本升级功能点介绍. 那么常用的用户引导页是如何实现的呢?这篇文章就说说我个人用到的,并且觉得使用不错的效果. 1.首先定义布局文件guide_layout.xml文件,主要使用ViewPager做页面显示,使用一个圆点布局显示圆点,圆点根据图片数目动态添加. guide_layout.xml文件的代码如下: <?xml version="1.0" encoding="utf

iOS 应用程序启动时要做什么

当您的应用程序启动(无论是在前台或后台),使用您的应用程序委托application:willFinishLaunchingWithOptions:和application:didFinishLaunchingWithOptions:方法来执行以下操作: 检查启动选项字典的内容,了解有关启动应用程序的原因,并做出相应的响应. 初始化您的应用程序的关键数据结构. 准备您的应用程序的窗口和视图以供显示: 在启动时,系统会自动加载您的应用程序的main Storyboard加载初始视图控制器. app

iOS启动时如何添加引导页面 小demo

相信大家都看到过手机应用在启动的时候,都会有一个很漂亮的页面,在这个页面显示之后,如果你是第一次打开该应用还会有提示图片(如程序怎么使用等等),今天自己写了一个小demo 在此分享一下,可以给新学者一个参考             以上就是在Xcode中如何找到设置引导页面的位置 对于图片的设置大家可以看到图中有2x  和R4 两种,对于这两种类型的区别如下 R4 代表的是Retina屏幕也就是高清屏,那么这里我们选择的引导图片,一般情况下,在工程中如果有[email protected] 或者

判断ios app 第一次启动 别人的 嘿嘿

流行的解决方案是在大多数地方是用[NSUserDefaults standardUserDefaults的一个关键,如果它不存在,这意味着这是应用程序启动,否则,它不是第一次 在appdelegate.m中找到 “application:didFinishLaunchingWithOptions:” 方法, 添加以下代码: if (![[NSUserDefaults standardUserDefaults] boolForKey:@"everLaunched"]) {    [[NS

在spark-shell里用集群方式启动时加入用户需要的jar

希望在spark-shell中测试集群方式的elasticsearch操作, # 1 首先下载相关的jar # 2 启动spark-shell时用--jars ./bin/spark-shell –master spark://master:7077 –jars /usr/local/spark-1.6.2/lib/elasticsearch-spark_2.10-2.2.0.jar # 3 需要用conf设置es.nodes val conf = new SparkConf() conf.se

怎样判断ios app 第一次启动以及每次更新后的第一次启动

流行的解决方案是在大多数地方是用[NSUserDefaults standardUserDefaults]的一个关键,如果它不存在,这意味着这是应用程序第一次启动,否则,它不是第一次启动 在appdelegate.m中找到 “application:didFinishLaunchingWithOptions:”方法, 添加以下代码: 1 if (![[NSUserDefaults standardUserDefaults] boolForKey:@"firstLaunch"]) { 2

linux 查看进程启动时,用户的工作目录

在linux下查看进程大家都会想到用 ps -ef|grep XXX可是看到的不是全路径,怎么看全路径呢?每个进程启动之后在 /proc下面有一个于pid对应的路径例如:ps -ef|grep python显示:oracle    4431  4366  0 18:56 pts/2    00:00:00 python Server.py4431就是进程号到/proc/4431下,ls -l 会看到:总用量 0-r--r--r--    1 oracle   oinstall        0

用户引导页

一.首先第一步,写好用户轮播页的viewController,比如叫做LVUserGuideVC,关键代码是配置和scrollView和pageControl. pageControl的动作action ,changePage这样写: -(void)changePage{ CGRect frame = self.scrollView.frame; frame.origin.x = frame.size.width * self.pageControl.currentPage; frame.ori