本文目录

  • 前言
  • 创建一个纯代码编辑的Swift + UIKit项目
    • 创建一个Swift + UIKit项目
    • 让它变成纯代码编辑的
  • 让你的APP打开指定的ViewController
    • 创建一个窗口
    • 编辑ViewController文件,看下它是否真的被打开了?

前言

校招入职公司一年多了,现在也总算是告别了什么都不会的新手期,处理日常工作时也不至于面对需求无计可施。但是我总感觉,作为一个初涉iOS的工程师而言,多去造造轮子,做做项目,对自己的提升应该也会更快。这个过程里,我也可以更快熟悉苹果生态,将自己的身份从一名iOS开发新手,转变为iOS开发者。(虽然公司的基建很赞,让我不用操心这些东西,但是一直依赖下去可也不是什么好事= =)

在这半年内,我会开始根据100Day Swift列出的一系列项目,去重新做一遍,并且将遇到的各个基础知识整理到博客中,方便以后查阅和使用。也欢迎各位同行指出不足,一起进步。

  • 本文适合的读者:

    • 有过客户端开发经历,了解客户端常用架构(MVC/MVP/MVVM)
    • 熟悉Swift语法,或已完成了Swift的学习
    • 想了解iOS的开发流程
  • 本文涉及到的项目:Project 1 - Tap Counter
  • 本文的主题:如何使用纯代码方式创建一个Swift + UIKit项目
  • 环境相关:
    • 开发环境:macOS 12.4 + XCode 13.4.1
    • iOS target:15.0
    • Swift 版本:Swift 5.3

创建一个纯代码编辑的Swift + UIKit项目

创建一个Swift + UIKit项目

打开Xcode,右上角File → New → Project

在弹出来的Xcode弹窗里,点击一下iOS这个tab下的App,然后点击Next

在弹出来的界面中,需要填以下的信息:

  • Product Name:APP名

  • Organization Identifier:APP属于什么企业,标识符是什么

  • interface:UI框架,选择Storyboard,这一项对应着UIKit

  • Language:编程语言,选择Swift

选择项目的存储路径,然后恭喜你,你已经成功创建了这个项目啦。

让它变成纯代码编辑的

接下来,你将会删除掉项目对StoryBoard的引用。StoryBoard的本质很像Android、QT、UWP开发中的可视化界面,你可以在里面用xml/xaml语法快乐的拖动UI,并且所示即所得。

但是iOS工程界目前对这个方案还是不太喜欢的,业界更倾向的方式是:手撕UI,并且手撕布局。在这一节中,我会列出实现的方案。

首先,点击左侧列表中,你创建的项目。

然后在右方展示的general这个tab中,删除Main interface里的内容。

然后,点击左侧中的info文件,像我这样展开目录树。

然后点击最下方的storyboard name,敲一下backspace,删掉。

恭喜你,现在你获得了一个丢弃掉StoryBoard的项目了。接下来,我会教你怎么让你的APP打开第一个页面。

让你的APP打开指定的ViewController

我们以客户端常见的架构,MVC(Model、View、Controller)为例。纯代码的iOS开发会有稍许不一样,视图控制器(ViewController)往往需要承担视图+控制器的责任。

本小节,我会讲述如何让APP打开项目中已经创建好了的ViewController。

创建一个窗口

iOS的APP以窗口(Window)来显示页面。在跳转到ViewController之前,你需要创建这个APP的Window,然后将这个window的第一个视图控制器,设置为项目中的ViewController。

首先,打开SceneDelegate文件,然后删掉func scene(_:willConnectTo:options:)中的代码,用下面的代码粘贴上去。

class SceneDelegate: UIResponder, UIWindowSceneDelegate {var window: UIWindow?func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {guard let windowScene = scene as? UIWindowScene else { return }// Step 1. 创建let window = UIWindow(frame: CGRect(x: 0, y: 0, width: UIScreen.main.bounds.width, height: UIScreen.main.bounds.height))// Step 2. 设置背景色window.backgroundColor = .clear// Step 3. 设置第一个ViewControllerwindow.rootViewController = ViewController()// Step 4. 让它可见,并且做好事件监听window.makeKeyAndVisible()window.windowScene = windowScene// Step 5. 告诉APP,这就是你的windowself.window = window}
}

这段代码中,我们创建好了一个window变量,并且传给APP:

  1. 这个window是全屏的:它的大小等于屏幕的大小,位置从(0, 0)开始

  2. 这个window没有背景色

  3. 我们创建了一个ViewController变量,并且将它设为这个window的第一个ViewController

  4. 接下来,我们让这个window可见,并且做了一定的事件监听,这部分可以忽略

编辑ViewController文件,看下它是否真的被打开了?

然后,打开ViewController文件,用下面的代码粘贴上去。

和原来的代码比起来,这段代码里我们只做了一件事:我们希望打开的第一个页面是棕色的。

class ViewController: UIViewController {override func viewDidLoad() {super.viewDidLoad()view.backgroundColor = .systemBrown}
}

运行一下试试?然后你会看到你的模拟器打开了这么一个APP。

恭喜你,你的ViewController页面已经被打开了。

[纯代码] Swift+UIKit · 搭建第一个iOS APP项目相关推荐

  1. 视频教程-从零开发一个iOS企业级项目实战之我的云音乐视频 教程-iOS

    从零开发一个iOS企业级项目实战之我的云音乐视频 教程 任苹蜻,爱学啊创始人 & CEO,曾就职于某二车手公司担任Android工程师后离职创办爱学啊,我们的宗旨是:人生苦短,我们只做好课!熟 ...

  2. 如何用 React Native 创建一个iOS APP?(二)

    我们书接上文<如何用 React Native 创建一个iOS APP?>,继续来讲如何用 React Native 创建一个iOS APP.接下来,我们会涉及到很多控件. 1 AppRe ...

  3. 使用MVVM Swift UIKit RxSwift 写一个SpaceX 发射计划APP

    文章: Build a simple SpaceX Launches iOS app with MVVM and RxSwift 源码 GitHub - ykpoh/SpaceXLaunch: A i ...

  4. 怎样做一个iOS App的启动分层引导动画

    http://www.cocoachina.com/ios/20141211/10610.html 一. 为什么要写这篇文章? 这是一个很古老的话题,从两年前新浪微博开始使用多层动画制作iOS App ...

  5. 怎样做一个iOS App的启动分层引导动画?

    一. 为什么要写这篇文章? 这是一个很古老的话题,从两年前新浪微博开始使用多层动画制作iOS App的启动引导页让人眼前一亮(当然,微博是不是历史第一个这个问题值得商榷)之后,各种类型的引导页层出不穷 ...

  6. Eclipse搭建第一个Spring boot项目

    创建Spring boot项目之前,默认大家都已经下载好了Eclipse和Maven,并配置好了相关的环境. 一.下载STS插件 要创建Spring boot项目,首先得下载相应的插件,进入Eclip ...

  7. 介绍上架一个iOS APP需要多少钱

    经常收到咨询说ios app上架App Store需要多少费用?一两句话解释不清,ios APP上架涉及到方方面面,这里介绍下iosios app上架App Store需要的基本费用.APP开发的费用 ...

  8. ios APP项目架构心得

    iOS项目架构分为以下几步,这些都是总结的经验之谈 1.架构 1.架构这个概念很抽象,但是用一句话来说叫看菜吃饭,有些人喜欢先看UI在架构,有些人喜欢先把该有的东西有了再看UI,其实都可以-.. 2. ...

  9. 创建第一个Flutter App项目

    上篇,我们讲了Flutter在Windows下开发环境的配置,并创建一个新的Flutter项目.这篇我们来讲,创建Flutter App项目. 看下我们最终实现的效果: 第1步: 创建 Flutter ...

最新文章

  1. Linux命令之whereis
  2. HDU 4031 Attack (线段树)
  3. JPA_could not extract ResultSet问题解决
  4. Moodle: 查询任意数据库
  5. Python学习:day20正则表达式
  6. vue源码解析推荐文章
  7. android jni socket
  8. 我的 fedora 14 安装备忘
  9. 如何使用CANape实现XCP/CCP“Measurement测量”和“Calibration标定”变量
  10. ZigBee 协议栈的调度顺序代码分析
  11. 无线网络dns服务器设置,netgear 无线dns设置教程
  12. C# LeetCode刷题 - LeetCode 148. Sort List 解题报告(归并排序小结)
  13. php获取判断图片大小,php 获取图片尺寸的方法
  14. SSH Agent Forwarding概念与示例
  15. BLE 怎样添加 Characteristic
  16. html表格与CSS控制表格样式
  17. Windows下免杀思路总结
  18. HDMI ite6801的开发板
  19. 华为3COM交换机配置
  20. 字符串加密操作(c语言)

热门文章

  1. 解决 VS 无法打开包括文件: “XXX.h”: No such file or directory问题
  2. 堆内存和栈内存详解(转载)
  3. Windows 程式设计书籍
  4. 58同城MySQL30条军规
  5. 超详细的 Wireshark 使用教程
  6. JAVA核心知识点之 数据结构:总结概述
  7. 展开运算符和object.assign()的区别
  8. 字符串的输入输出及字符串函数
  9. 移动端登录页面-vue
  10. 这些衣服包包国内比国外便宜?是你想太多