你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> 最小的Swift App

最小的Swift App

編輯:IOS開發綜合

如何通過通過純粹的代碼,而不依賴於Xcode的StoryBoard,來完成一個App?

首先做些操作性的工作,具體過程是這樣的:

打開xcode

創建一個Single View App

Xcode會進入主要編輯界面。此時,我們打開AppDelegate.swift文件然後覆蓋源代碼為如下:

    import UIKit
    @UIApplicationMain
    class AppDelegate: UIResponder, UIApplicationDelegate {
        var Window : UIWindow?
        func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
            Window = UIWindow()
            window!.rootViewController = UIViewController()
            window!.rootViewController!.view.backgroundColor = .blue
            window!.makeKeyAndVisible()
            return true
        }
    }

運行後發現手機(或者仿真器)滿屏的藍色背景就說明成功了。

一起來看看代碼。

我們需要導入UIKit:


    import UIKit

框架UIKit用來構造和管理用戶界面、響應用戶交互和系統事件。既然需要創建App,引入UIKit是第一件需要做的工作。

接著查看AppDelegate類。它實現協議UIApplicationDelegate,且必須被標記為@UIApplicationMain,兩者配合就設置了App的程序入口點。AppDelegate實現了此協議中規定的函數:

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

這樣,UIKit就會在完成App啟動調用此函數,從而App可以再次實現自己的初始化邏輯。

在本案例中,我們在啟動函數中創建了window實例,它是UIWindow的實例。代碼隨即把window屬性的rootViewController設置為UIViewController的實例。

為了可視化的看到我們的工作成果,我們設置UIViewController的背景色為藍色,設置的方式就是把屬性view背景色設置為藍色,此屬性是類UIView的實例。

這樣,我們完成了最基本的一個UI界面。

window和view是構建UI的關鍵構造塊,因此有必要澄清下概念。

每個應用都有一個window,這個window並沒有任何外觀形象,每個view都是被window包含在內的,事件處理也是首先路由到相應的window對象然後被導向到對應的視圖。

View定義了一個屏幕上的矩形區域,並且管理此區域的內容和用戶交互。window通過一個rootViewController的屬性view開始關聯,然後在此view內可以通過addSubView加入更多的子視圖來完成UI的構建。

隨後我們會接觸更多的view類型,實際上按鈕(UIButton)、標簽(UILabel)等可以看到和交互的控件都是視圖的子類,View的使用時非常廣泛的。

可能很多人會覺得AppDelegate這個名字過於冗長。為此我們得了解一個叫做Delegate的設計模式。Delegate是一個簡單而強大的設計模式,可以讓其中一個對象委托一部分功能給另外一個對象。做法就是發起對象持有委托對象的實例,並在適當的時間發起消息給委托對象,告訴委托對象將要發生的事件或者已經發生的事件。委托對象可以更新用戶界面或者更新自己的狀態作為響應。

在此案例中,關於委托牽涉到了兩個類包括UIApplication、AppDelegate,以及一個協議為UIApplicationDelegate,UIApplication委托事件給AppDelegate,這裡的委托事件就是:

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

以便讓在UIApplicationDelegate的對象可以完成自己的初始化代碼。UIApplication和UIApplicationDelegate之間可以建立一個協議,此協議規定兩者之間可以委托的具體內容,此協議就是UIApplicationDelegate規定的,可以通過手冊了解此協議的更多資料。

這樣,我們了解到了建造一個App涉及到的最少的類:UIApplication、UIApplicationDelegate、UIWindow、UIViewController,以及UIKit大量使用的委托設計模式,未來的文字將會以此為墊腳石。

以上就是對最小的Swift App的相關介紹,希望對您學習IOS有所幫助,感謝您關注本站!

[db:作者簡介][db:原文翻譯及解析]

【最小的Swift App】的相關資料介紹到這裡,希望對您有所幫助! 提示:不會對讀者因本文所帶來的任何損失負責。如果您支持就請把本站添加至收藏夾哦!

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved