Day02 UIKit 01 - 新建专案

我们首先先从UIkit开始,我们在Xcode 新建专案,并选择Storyboard 作为Interface,如下图
create_uikit_project

新建完成後,我们来认识一下它自动产生的档案:

左边区块的操作面板是「专案导览器」(Project Navigator ),在这个区块中可找到你所有的专案档案
project_navigator

  1. Info.plist

    向 iOS 提供关於app 的一些重要资讯,像是App 的属性设定,例如一个App 应该怎样启动、它如何被本地化、App 的名称、相关权限的请求 (EX:相机取用),等等资讯

  2. Assets.xcassets

    管理专案中用到的icon和各种图片素材

  3. ViewContorller.swift

    应用程序预设的主要视图控制器(ViewController),所有需要的 UI 功能,像是按钮、文字或图案等等,都必须在这个ViewController 里面建立,通常会写在viewDidLoad()这个方法里面,此方法代表页面容器已经初始化完毕,预设页面会是空白的

    • 视图(View)指的是在装置萤幕上会呈现出来的东西,像是文字、图片、元件(如:按钮、选单、列表之类)等等
    • 视图控制器(ViewController)则是负责资料的处理与设置视图要如何呈现,继承自UIViewController,负责一个画面(即呈现视图View)的功能,如果有多个画面时,就需要各自建立不同的UIViewController
  4. Main.storyboard

    预设主页面所在的storyboard,也就是点开App 後,会安排用户所看到的页面(预设会是ViewContorller.swift

    • storyboard 里面可以放置多个页面(ViewController),页面之间的跳转关系也可以在storyboard 里面定义,可以帮助我们用比较直观的方式来快速的开发UI,通过storyboard 我们可以看到我们设计的页面长什麽样子

    • Main.storyborad 只是创建专时系统预设主页面所在的storyborad,在Info.plist 里可以随时更换到别的storyborad,我们可以在一个专案中定义多个storyboard,一个storyboard 里面又可以定义多个页面(ViewController)。所以storyboard 可以理解成是一群相关页面所组成的集合

  5. LaunchScreen.storyboard

    为App 在开启时的启动画面,即加载应用程序时显示的内容

  6. AppDelegate.swift 和 SceneDelegate.swift

    为iOS App 的进入点,我们放在下一篇着重介绍,这边先做个简介

    前提介绍:当你在Xcode 11 以後新建UIKit 专案时会自动建立SceneDelegate.swift,这在Xcode 11 以前是没有的,而创建它的原因是什麽,又应该如何使用呢?
    AppDelegate 是App 的主要入口点,而在 iOS 13 以前,应用程序在AppDelegate 中启动并处理应用程序的後台和前台等相关的所有工作,而应用程序的窗口window 本质上就是应用程序,大多数iOS 应用程序只有一个窗口。它包含您App 的用户界面(UI),将事件调度到View,并显示您的App 内容。
    不过在 iOS 13 中,一个应用程序可以具有不止一个窗口,为了可以在iOS 和 iPad OS 上构建多窗口multi-window 的应用程序,导入了场景scene 的概念,让应用程序可以具有不止一个场景,而每个场景都可以作为应用程序的用户界面,所以Apple 将部分 AppDelegate 职责移至 SceneDelegate,而这就是引入新的多窗口支持功能的方式:

    • AppDelegate 将负责应用程序的生命周期和设置
    • SceneDelegate 将负责萤幕上显示的内容(窗口Windows 或场景Scene )处理并管理您的应用程序的显示方式

<<:  Day02 Package的 类别

>>:  WordPress 如何隐藏文章的作者、日期资讯

【Day9】AddInvitationFragment(上)

好的,接下来我们要新增邀约的Fragment,好让使用者可以上去PO出自己的邀约,以及让不同的使用...

说话的艺术

虽然在Day 9 聊了一些团队中的提问文化,我大原则仍希望我的团队内大家是开放的风气,什麽都可以问,...

【Day29 #2】企业数位治理议题3:核心化之E化系统架构

#odoo #开源系统 #数位赋能 #E化自主 前言 在前一篇文章中我们讨论到,当我们利用整合性工具...

Day7 初探CFS scheduler (上)

前言 上次讲完了过去 Linux 的排程器,今天就来讲讲 CFS (complete fair sc...

Day24 - [丰收款] 以Django Web框架实作永丰API线上支付模拟情境(5) - 我的订单

今天这篇是我们实作库米狗屋●KummyShop的情境电商模拟的最终章了!今天我们要把先前建的一堆订单...