1. 程式人生 > >swift 編寫歡迎介面-- ios開發

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

現在很多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(width: 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, width: 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的類。