最小的Swift App

最小的Swift App,第1张

概述如何通过通过纯粹的代码,而不依赖于Xcode的StoryBoard,来完成一个App? 首先做些 *** 作性的工作,具体过程是这样的: 打开xcode 创建一个Single View App Xcode会进入主要编辑界面。此时,我们打开AppDelegate.swift文件然后覆盖源代码为如下: import UIKit @UIApplicationMain class AppDeleg

如何通过通过纯粹的代码,而不依赖于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全部内容,希望文章能够帮你解决最小的Swift App所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1065210.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存