swift 编写欢迎界面-- ios开发

转载自:http://blog.csdn.net/u014455765/article/details/49622947

现在很多iOS开发人员都从oc转向Swift, swift 也必将成为ios开发的潮流和趋势。
在此和大家一起分享程序进入的欢迎界面,让app在用户第一次打开或者是更新之后进入时有欢迎界面了解app的内容和活动。
1、准备4张引导页的图片拖动到Images.xcassets文件中。这里写图片描述
这里写图片描述
2、创建一个ViewController.swift文件。//

//  ViewController.swift
//  欢迎界面
//
//  Created by Mac Tylar on 15-11-2.
//  Copyright (c) 2015年 Mac Tylar. All rights reserved.
//

import UIKit

class ViewController: UIViewController, UIScrollViewDelegate {
    // 闭包属性    用于跳转页面
    var startClosure: (()-> Void)?
    // 创建scrollView
    let scrollView = UIScrollView()
    // 创建pageController
    let pageControl = UIPageControl()
    override func viewDidLoad() {
        super.viewDidLoad()
        self.view.backgroundColor = UIColor.whiteColor()
        // 设置scrollView的大小
        scrollView.frame = self.view.bounds
        // 设置scrollView的内容大小,横向宽度等于图片数目乘以宽度,高度为0 不滚动
        scrollView.contentSize = CGSize( self.view.frame.width*4, height: 0)
        // 设置分页
        scrollView.pagingEnabled = true
        // 去除弹簧效果
        scrollView.bounces = false
        // 去除横向的滚动条
        scrollView.showsHorizontalScrollIndicator = false
        // 设置代理
        scrollView.delegate = self
        // 设置居中和坐标
        pageControl.center = CGPoint(x: self.view.frame.width/2, y: self.view.frame.height-50)
        // 设置当前页面指示颜色
        pageControl.currentPageIndicatorTintColor = UIColor.whiteColor()
        // 设置指示颜色
        pageControl.pageIndicatorTintColor = UIColor.redColor()
        // 设置页数
        pageControl.numberOfPages = 4
        // pageControl的值变动时调用方法
        pageControl.addTarget(self, action: "scrollViewDidEndDecelerating", forControlEvents: UIControlEvents.ValueChanged)
        // 添加背景图片
        for var i = 0 ; i < 4 ; i++ {
            let image = UIImage(named: "(i+1)")
            let imageView = UIImageView(frame: self.view.frame)
            imageView.image = image
            var frame = imageView.frame
            // x轴等于当前的i乘以宽度  等于偏移宽度
            frame.origin.x = CGFloat(i) * frame.size.width
            // 设置imageView的frame
            imageView.frame = frame
            // 给最后一个导航页上添加一个进入按钮  进入主页
            if i == 3 {
                let btn = UIButton(frame: CGRect(x: self.view.frame.width/2-60, y: self.view.frame.height/2+100,  120, height: 40))
                btn.layer.cornerRadius = 10
                btn.backgroundColor = UIColor.redColor()
                btn.setTitle("进入", forState: UIControlState.Normal)
                btn.setTitleColor(UIColor.whiteColor(), forState: UIControlState.Normal)
                btn.setTitleColor(UIColor.grayColor(), forState: UIControlState.Highlighted)
                btn.addTarget(self, action: "startAction:", forControlEvents: UIControlEvents.TouchUpInside)
                imageView.addSubview(btn)
                imageView.userInteractionEnabled = true
            }
             // 添加子视图
            scrollView.addSubview(imageView)
        }

        // 添加子视图
        self.view.addSubview(scrollView)
        self.view.addSubview(pageControl)
        // Do any additional setup after loading the view, typically from a nib.
    }

    func startAction(sender: UIButton) {
        startClosure!()
    }

    // pageControl的值变动时调用的方法
    func scrollViewDidEndDecelerating(scroll: UIScrollView) {
        // 获取index
        let index = scrollView.contentOffset.x/self.view.frame.width
        // 设置当前页面
        pageControl.currentPage = Int(index)
        // 添加子视图
        self.view.addSubview(pageControl)
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
}

3、在AppDelegate类中添加application方法的代码块。

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

// NSUserDefaults.standardUserDefaults().removeObjectForKey(“started”)
// 判断是否时第一次打开app
var started = NSUserDefaults.standardUserDefaults().valueForKey(“started”) as? String
if started == nil {
let vc = ViewController()
self.window?.rootViewController = vc
vc.startClosure = { ()-> Void in
self.startApp()
NSUserDefaults.standardUserDefaults().setValue(“start”, forKey: “started”)
NSUserDefaults.standardUserDefaults().synchronize()
}
} else {
self.startApp()
}
return true
}

// 启动程序
func startApp() {
    let rootVc = centerViewViewController()
    // 给viewController配置导航控制器
    let navi = UINavigationController(rootViewController: rootVc)
    self.window?.rootViewController = navi
}

注意:centerViewViewController()是一个viewControler的类。

原文地址:https://www.cnblogs.com/melons/p/5791903.html