02_第一步_UIKit

关于UIKit的应用程序开发

了解UIKit和Xcode为您的iOS和tvOS应用程序提供的基本支持。


Overview(概述)

UIKit框架提供了为iOS和tvOS构建应用程序所需的核心对象。 您可以使用这些对象在屏幕上显示您的内容,与该内容进行交互,并管理与系统的交互。 应用程序依赖于UIKit的基本行为,UIKit提供了许多方法来定制该行为以满足您的特定需求

Important(重要)

您总是通过在Apple的集成开发环境Xcode中创建项目来开始iOS或tvOS应用程序的开发。 如果你没有Xcode,你可以从App Store下载。 您也可以从developer.apple.com下载最新版本。

Xcode提供模板项目作为您创建的每个应用程序的起点。 例如,图1显示了使用Xcode中的单一视图应用程序模板创建的应用程序的结构。 模板项目提供最小的用户界面,因此您可以立即构建和运行项目,并在设备或模拟器中查看结果。

图1

当您构建应用程序时,Xcode会编译您的源文件并为您的项目创建一个应用程序包。 应用程序包是一个结构化的目录,包含与应用程序关联的代码和资源。 资源包括支持代码的 image assets, storyboard files, strings files,和应用程序元数据。 应用程序包的结构很重要,但Xcode知道您的资源需要去哪里,所以现在不要担心。

所需资源

每个UIKit应用程序都需要具有以下资源:

1、App icons

2、Launch screen storyboard

系统会在主屏幕的“设置”中以及任何需要将应用程序与其他应用程序区分开来的位置显示您的应用程序图标。 由于它在多个地方以及多个设备上使用,因此您可以在Xcode项目的AppIcon图像资源中提供多个版本的应用程序图标,如图2所示。您的应用程序图标应该与众不同,以帮助用户快速识别您的应用程序 主屏幕。 但是,您可能会改变图标的细节以适应您必须提供的不同图像大小。


图2

LaunchScreen.storyboard文件包含您的应用程序的初始用户界面,它可以是启动画面或实际界面的简化版本。 当用户点击你的应用程序的图标时,系统立即显示你的启动屏幕,让你的应用程序正在启动的用户。 启动屏幕还为自己初始化时的应用提供封面。 当您的应用程序准备就绪后,系统将隐藏启动屏幕并显示您的应用程序的实际界面。

必需的应用程序元数据(Required App Metadata)

系统从您的应用程序包中的信息属性列表(Info.plist)文件中导出关于您的应用程序的配置和功能的信息。 Xcode为每个新的项目模板提供了这个文件的预配置版本,但是您可能需要在某个时候修改这个文件。 例如,如果您的应用程序依赖于特定的硬件或使用特定的系统框架,则可能需要将与这些功能相关的信息添加到此文件。

您可以对Info.plist文件进行的一项常见修改是声明您的应用程序的硬件和软件要求。 这些要求是您如何向系统传达您的应用程序需要运行的方式。 例如,导航应用程序可能需要GPS硬件的存在才能提供转由转向的指示,如图3所示.App Store阻止将应用程序安装在不符合应用程序要求的设备上。


图3

有关可以包含在Info.plist文件中的密钥的信息,请参阅信息属性列表密钥参考

UIKit应用程序的代码结构(Code Structure of a UIKit App)

UIKit提供了许多应用程序的核心对象,包括与系统交互的应用程序,运行应用程序的主事件循环,并在屏幕上显示您的内容。 您可以按原样使用大部分对象,也可以仅使用较小的修改。 知道要修改哪些对象以及何时修改它们对于实现您的应用程序至关重要。

UIKit应用程序的结构基于模型 - 视图 - 控制器(MVC)设计模式,其中对象根据其目的进行划分。 模型对象管理应用程序的数据和业务逻辑。 查看对象提供了数据的可视化表示。 控制器对象充当模型和视图对象之间的桥梁,在适当的时候在它们之间移动数据。

图4代表了UIKit应用程序的一个相当典型的结构。 您提供表示您的应用程序的数据结构的模型对象。 UIKit提供了大部分视图对象,尽管您可以根据需要为数据定义自定义视图。 协调您的数据对象和UIKit视图之间的数据交换是您的视图控制器和应用程序委托对象。

图4

UIKit和Foundation框架提供了许多用于定义应用模型对象的基本类型。 UIKit提供了一个UIDocument对象来组织属于基于磁盘文件的数据结构。 Foundation框架定义了代表字符串,数字,数组和其他数据类型的基本对象。 Swift标准库提供了许多基础框架中可用的相同类型。

UIKit提供了应用程序的控制器和视图图层中的大部分对象。 具体来说,UIKit定义了UIView类,它通常负责在屏幕上显示你的内容。 (您也可以使用Metal和其他系统框架直接在屏幕上显示内容。)UIApplication对象运行应用程序的主事件循环,并管理应用程序的整个生命周期。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,544评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,430评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,764评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,193评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,216评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,182评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,063评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,917评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,329评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,543评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,722评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,425评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,019评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,671评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,825评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,729评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,614评论 2 353

推荐阅读更多精彩内容