iOS10 UI教程基礎視窗的內容與設定起始視窗

大學霸發表於2016-11-21

iOS10 UI教程基礎視窗的內容與設定起始視窗

iOS10 UI教程基礎視窗的內容與設定起始視窗,本章我們從iOS10開發中UI的基礎知識開始講解,其中包括了視窗、檢視以及UI層次結構和Views的繼承等內容。一個成功的應用程式,除了高效可靠的程式碼外,優秀的使用者介面設計和程式框架的科學佈局也是十分重要的。如果開發者想要設計一個介面具有吸引力而且佈局又十分科學的應用程式,那麼就需要對使用者介面的組成部分十分熟悉。

iOS10 UI視窗

檢視層次結構中的最高層是視窗。視窗是UIWindow的一個例項,而UIWindow是一種特殊的UIView。它不繪製任何物件,可以被認為是一個空白容器。在一個應用程式中,有且只有一個視窗。視窗預設是充滿整個螢幕的。本節將講解視窗的內容、設定起始視窗以及視窗的工作方式。

 iOS10視窗的內容

應用程式的內容主要是由檢視控制器控制,並透過檢視在視窗中進行顯示。也就是說,如果開發者想要在視窗中顯示內容,就需要將內容傳送到視窗。此時需要使用UIViewController例項的rootViewController屬性,它會將檢視控制器的檢視自動設定為視窗的內容進行顯示。圖1.1所示的內容可以很好的說明檢視控制器、視窗以及檢視之間的合作過程。                                    


  檢視控制器、視窗以及檢視之間的合作

注意:在此圖中檢視控制器首先初始化並設定了視窗的根檢視控制器。最後,視窗顯示當前的根檢視控制器的檢視。

設定起始視窗

起始視窗就是應用程式在執行後,第一個顯示的視窗,起始視窗也被稱為主視窗。在應用程式中必須要有一個起始視窗。起始視窗很少需要開發者手動設定,一般會由Xcode預設定義。如果開發者想要自定義起始視窗,可以用以下兩種方式:一種是使用Info.plist檔案進行設定,另一種是使用程式碼進行設定。

1.Info.plist

當開發者使用Xcode的嚮導建立專案後,一個Storyboard(故事皮膚)也會被建立。如果開發者開啟Info.plist檔案,會看到Main Storyboard file base name關鍵字的值為預設的故事皮膚名稱為Main,如圖1.2所示。開發者可以修改此關鍵字的值對初始視窗進行自定義。


1.2  Info.plist

2.程式碼設定

如果開發者將Info.plist檔案中的Main storyboard file base name關鍵字移除,那麼Xcode將無法根據這個資訊去建立視窗,更別說是起始視窗了,如果執行程式,會看到如圖1.3所示的效果。

對起始視窗的設定可以使用UIWindowrootViewController屬性,此屬性可以用來設定視窗的根檢視,它會將檢視控制器的檢視自動的設定成起始視窗的內容,並呈現給使用者。其語法形式如下:

var rootViewController: UIViewController? { get set }

【示例1-1Hello】以下將使用rootViewController屬性設定應用程式的起始視窗。具體的操作步驟如下:

1)建立一個Single View Application模板型別的專案,命名為Hello

2)開啟Main.storyboard檔案,從檢視庫中拖動View Controller檢視控制器到畫布中,並將新的View Controller檢視控制器的檢視的背景設定為綠色。

3)在Show the Identity inspector皮膚中,將View Controller檢視控制器的Storyboard ID設定為viewController2

4)移除Info.plist檔案中的Main storyboard file base name鍵。

5)開啟AppDelegate.swift檔案,編寫程式碼,實現起始視窗的設定。程式碼如下:

import UIKit

@UIApplicationMain

class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {

        window=UIWindow(frame:UIScreen.main.bounds)                                       //例項化視窗

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

        let viewController=storyboard.instantiateViewController(withIdentifier: "viewController2")

        window?.rootViewController=viewController                                                 //設定起始視窗

        window?.makeKeyAndVisible()                                                                          //設定為主視窗並顯示出來

        return true

    }

}

此時執行程式,會看到如圖1.4所示的效果


1.3  執行效果                            1.4  執行效果

iOS10 UI教程基礎視窗的內容與設定起始視窗

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29597077/viewspace-2128808/,如需轉載,請註明出處,否則將追究法律責任。

相關文章