如何通過通過純粹的代碼,而不依賴於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】的相關資料介紹到這裡,希望對您有所幫助! 提示:不會對讀者因本文所帶來的任何損失負責。如果您支持就請把本站添加至收藏夾哦!