都好久没有发Swift的博客了。最近利用休息时间在模仿一点停的项,使用Swift写的。
一般我们项目在安装后的第一次启动都会有一个左右滑动的轮播页,一般是关于app的宣传页面或是介绍或是广告。总之是有这么一个东西。这个怎么做呢?

思路

做什么事情之前,首先是思路。
找思路之前先要分析需求:
1.安装后首次启动app的时候回有这个轮播页
2.左后滑动
……
有这两点就可以做出来了。

分析需求-实现需求

1.安装后首次启动有,说明这个轮播页只运行一次,以后就不再出现了;
2.每次启动程序都会首先运行一个方法:

func application(application: UIApplication,didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
        // Override point for customization after application launch.
        return true
    }

这个方法,我们没有设置跟控制,项目就会默认是ViewController。
下面问题就简单了,我们在这个方法里面做切换跟控制器的操作。

  • AppDelegate里切换跟控制器

在上面的方法里面加入:(IndexViewController 轮播页控制器)

let indexVC = IndexViewController();
 window?.rootViewController = indexVC;

这样我们就可以切换跟控制器了。

  • 运行一次
    运行一次,这好做,我们可以在NSUserDefaults里面设置一个键值对。运行:
func application(application: UIApplication,didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool

这个方法时,我们先读这个键值对,里面有值,我们就进入项目默认的控制器ViewController,没有就进入IndexViewController。
在IndexViewController里面我们给这个键值对设置一个值。也就是说,只要运行过IndexViewController之后,这个键值对有始终会存在一个值,那么app以后的启动就不会进入IndexViewController,而是默认的ViewController。

func application(application: UIApplication,didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
        // Override point for customization after application launch.

        // 设置跟控制器
        let  launch =  NSUserDefaults.standardUserDefaults().valueForKey("firstLaunch");

        if launch == nil {
            let indexVC = IndexViewController();
            window?.rootViewController = indexVC;
        } else{
            window?.rootViewController = ViewController();
        }
        return true
    }
  • IndexViewController制作轮播页/切换跟控制器/设置键值对
    在app进入IndexViewController里面后,又会存在一个问题?轮播页轮播完后,怎么进入app呢?
    这回时候我们就又需要切换一次跟控制器为默认的跟控制器。
// 立即体验按钮点击事件
 @IBAction func btnClick(sender: UIButton) {

        NSUserDefaults.standardUserDefaults().setValue(firstLaunch,forKey: firstLaunch);

        let window = UIApplication.sharedApplication().keyWindow;
        if ((window?.rootViewController) != nil) {
            window?.rootViewController?.removeFromParentViewController();
            window?.rootViewController = nil;
        }

        window!.rootViewController = ViewController();

        let cATransition = CATransition();
        cATransition.duration = 0.3;
        cATransition.type = kCATransitionFade;
        window?.layer.addAnimation(cATransition,forKey: nil);

        window!.makeKeyWindow();
    }

在切换之前我们也把上面提到的键值对设置了一个值,这样以后app启动后,这键就有值了。

效果图

Swift 项目首次启动轮播页的制作的更多相关文章

  1. bootstrapv4轮播图去除两侧阴影及线框的方法

    这篇文章主要介绍了bootstrapv4轮播图去除两侧阴影及线框的方法,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  2. AmazeUI图片轮播效果的示例代码

    这篇文章主要介绍了AmazeUI图片轮播效果的示例代码,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  3. Swift版本的图片轮播器框架

    大家在使用的时候,只需要像这样:一个图片轮播器就完成了,是不是很简单呢?赶紧试试吧~如果框架中有什么bug,还请大家多多指教哦.图片效果如下:第一个自己写的框架,难免有不完善的地方,希望大家能帮着作者君一起完成哦~~补充:那天,这篇博客被隔壁老王看到了,把我狠狠的吐槽了一下。你这个毫无特色的图片轮播器也好意思上传?敢不敢来个炫一点的,于是,小汤就又含泪添加了一个比较酷炫的图片轮播器效果。。。

  4. 源码推荐(7.21):顶部滑动菜单FDSlideBar,Swift版无限循环轮播图

    顶部滑动菜单FDSlideBarFDSlideBar是一个顶部滑动菜单,如常见的网易、腾讯新闻等样式。菜单间切换流畅,具有较好的体验性。测试环境:Xcode6.2,iOS6.0以上Swift版无限循环轮播图无限循环轮播图片点击代理可设置图片Url的数组Url和本地图片混合轮播测试环境:Xcode6.2,iOS7.0以上弹幕系统实现--QHDanumuDemo说明:QHDanmu文件夹下是主要的弹幕模块系统,QHDanmuSend文件夹下是简单的发射弹幕的界面。

  5. Swift轮播图的实现及原理(支持xib)

    功能:无限循环轮播图片点击代理本地、远端图片混设支持code、xib、storyboard调用支持旋转支持iPhone、iPad运行展示图:使用方法:下载后直接把CircleView.swift和CircleView.xib这2个文件拉进项目中pod添加kingfisherxib||storyboard:code:添加:下步计划:支持pod开放更多功能如有意见,欢迎issue项目地址:swift无限自动循环轮播图

  6. Swift-轻松实现图片轮播

    我写android的时候实现图片轮播用的viewpager,其实还算可以,也不是特麻烦,用swift实现图片轮播我用的scrollview+pageControl,今天我记录一下实现的过程,理清一下思路。这个一个scrollview,横着放,里面放了四张图片,计算出图片的frame,实现轮播的时候,我们去计算scrollview的offset偏移量,然后用定时器timer去触发滚动,计算当前的偏移量和page,配合pageControll,指示器改变,当到达最后一张图片的时候我们把page设为0。错误总结

  7. Swift图片轮播的代码

    //提示当前滚动的图片,指示器;拖动几张图片到Images.xcassets中,本例子拖动5张图片,名字分别为gallery1.....gallery5.4)在类内定义一个NSTimer类型的定时器:vartimer:NSTimer!

  8. Swift 使用CollectionView 实现图片轮播封装

    前言:这篇你可以学会自定义视图,创建collectionView,协议的使用,定时器;首先新建一个继承于UIView的视图,且用collectionView实现所以需要签订两个协议代码如下:使用到的变量以及创建视图布局必要的UI以及创建定时器定时器初始化销毁定时器实现循环滚动collectionViewDelegate设置当前的pagecontrol点击方法下面是我在自定义cell中的代码封装基本

  9. Swift 项目首次启动轮播页的制作

    最近利用休息时间在模仿一点停的项,使用Swift写的。一般我们项目在安装后的第一次启动都会有一个左右滑动的轮播页,一般是关于app的宣传页面或是介绍或是广告。找思路之前先要分析需求:1.安装后首次启动app的时候回有这个轮播页2.左后滑动……也就是说,只要运行过IndexViewController之后,这个键值对有始终会存在一个值,那么app以后的启动就不会进入IndexViewController,而是默认的ViewController。IndexViewController制作轮播页/切换跟控制器/

  10. Swift实现"视差效果"的视图轮播

    ScrollView实现简单粗暴,但是有一个很大的问题,视图复用。UIPageViewController实现依赖于ViewController,而作为一个视图来说,还是轻量级比较好一点。所以,我们用一个ScrollView来包含ImageView,通过控制ContentOffset来控制ImageView的滚动。调整Cell中的ScrollView的ContentOffset总结到这里,基本的原理就讲解完了。其实,所谓的视差效果,就是合理的利用ScrollView。

随机推荐

  1. Swift UITextField,UITextView,UISegmentedControl,UISwitch

    下面我们通过一个demo来简单的实现下这些控件的功能.首先,我们拖将这几个控件拖到storyboard,并关联上相应的属性和动作.如图:关联上属性和动作后,看看实现的代码:

  2. swift UISlider,UIStepper

    我们用两个label来显示slider和stepper的值.再用张图片来显示改变stepper值的效果.首先,这三个控件需要全局变量声明如下然后,我们对所有的控件做个简单的布局:最后,当slider的值改变时,我们用一个label来显示值的变化,同样,用另一个label来显示stepper值的变化,并改变图片的大小:实现效果如下:

  3. preferredFontForTextStyle字体设置之更改

    即:

  4. Swift没有异常处理,遇到功能性错误怎么办?

    本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请发送邮件至dio@foxmail.com举报,一经查实,本站将立刻删除。

  5. 字典实战和UIKit初探

    ios中数组和字典的应用Applicationschedule类别子项类别名称优先级数据包contactsentertainment接触UIKit学习用Swift调用CocoaTouchimportUIKitletcolors=[]varbackView=UIView(frame:CGRectMake(0.0,0.0,320.0,CGFloat(colors.count*50)))backView

  6. swift语言IOS8开发战记21 Core Data2

    上一话中我们简单地介绍了一些coredata的基本知识,这一话我们通过编程来实现coredata的使用。还记得我们在coredata中定义的那个Model么,上面这段代码会加载这个Model。定义完方法之后,我们对coredata的准备都已经完成了。最后强调一点,coredata并不是数据库,它只是一个框架,协助我们进行数据库操作,它并不关心我们把数据存到哪里。

  7. swift语言IOS8开发战记22 Core Data3

    上一话我们定义了与coredata有关的变量和方法,做足了准备工作,这一话我们来试试能不能成功。首先打开上一话中生成的Info类,在其中引用头文件的地方添加一个@objc,不然后面会报错,我也不知道为什么。

  8. swift实战小程序1天气预报

    在有一定swift基础的情况下,让我们来做一些小程序练练手,今天来试试做一个简单地天气预报。然后在btnpressed方法中依旧增加loadWeather方法.在loadWeather方法中加上信息的显示语句:运行一下看看效果,如图:虽然显示出来了,但是我们的text是可编辑状态的,在storyboard中勾选Editable,再次运行:大功告成,而且现在每次单击按钮,就会重新请求天气情况,大家也来试试吧。

  9. 【iOS学习01】swift ? and !  的学习

    如果不初始化就会报错。

  10. swift语言IOS8开发战记23 Core Data4

    接着我们需要把我们的Rest类变成一个被coredata管理的类,点开Rest类,作如下修改:关键字@NSManaged的作用是与实体中对应的属性通信,BinaryData对应的类型是NSData,CoreData没有布尔属性,只能用0和1来区分。进行如下操作,输入类名:建立好之后因为我们之前写的代码有些地方并不适用于coredata,所以编译器会报错,现在来一一解决。

返回
顶部