天天看點

swift 編寫歡迎界面-- ios開發

現在很多ios開發人員都從oc轉向swift, swift 也必将成為ios開發的潮流和趨勢。

在此和大家一起分享程式進入的歡迎界面,讓app在使用者第一次打開或者是更新之後進入時有歡迎界面了解app的内容和活動。

1、準備4張引導頁的圖檔拖動到Images.xcassets檔案中。

swift 編寫歡迎界面-- ios開發

2、建立一個ViewController.swift檔案。//

//  ViewController.swift
//  歡迎界面
//
//  Created by Mac Tylar on --
//  Copyright (c) 年 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的内容大小,橫向寬度等于圖檔數目乘以寬度,高度為 不滾動
        scrollView.contentSize = CGSize(width: self.view.frame.width*, height: )
        // 設定分頁
        scrollView.pagingEnabled = true
        // 去除彈簧效果
        scrollView.bounces = false
        // 去除橫向的滾動條
        scrollView.showsHorizontalScrollIndicator = false
        // 設定代理
        scrollView.delegate = self
        // 設定居中和坐标
        pageControl.center = CGPoint(x: self.view.frame.width/, y: self.view.frame.height-)
        // 設定目前頁面訓示顔色
        pageControl.currentPageIndicatorTintColor = UIColor.whiteColor()
        // 設定訓示顔色
        pageControl.pageIndicatorTintColor = UIColor.redColor()
        // 設定頁數
        pageControl.numberOfPages = 
        // pageControl的值變動時調用方法
        pageControl.addTarget(self, action: "scrollViewDidEndDecelerating", forControlEvents: UIControlEvents.ValueChanged)
        // 添加背景圖檔
        for var i =  ; 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 ==  {
                let btn = UIButton(frame: CGRect(x: self.view.frame.width/-, y: self.view.frame.height/+, width: , height: ))
                btn.layer.cornerRadius = 
                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的類。