SwiftUI系列教程第1章第1节:创建一个简单的SwiftUI项目_swift项目添加swiftui-程序员宅基地

技术标签: swiftui  iOS移动开发  ios开发  SwiftUI  

源码地址:https://github.com/fzhlee/SwiftUI-Guide


图片来源:developer.apple.com 

SwiftUI
更好的应用,更少的代码。
SwiftUI是一种创新、简单的iOS开发中的界面布局方案,可以通过Swift语言的强大功能,在所有的Apple平台上快速构建用户界面。 仅使用一组工具和API为任何Apple设备构建用户界面。 
SwiftUI具有易于阅读和自然编写的声明式Swift语法,可与新的Xcode设计工具无缝协作,使您的代码和设计完美同步。 
自动支持动态类型、暗黑模式、本地化和可访问性,意味着您的第一行SwiftUI代码已经是您编写过的最强大的UI代码了。
 


SwiftUI开发实用快捷键
Command + Option + Enter : 打开或关闭预览窗口
Command + Option + P : 刷新预览窗口

SwiftUI的85节教程及源码
所有课程基于Xcode 11 beta5,并在Xcode 11 beta5上编译通过。
Xcode 11 beta版本下载地址:https://developer.apple.com/download/ 
当Xcode11正式版发布之后,会更新所有源码,以适配Xcode 11正式版。

 


图片来源:developer.apple.com

 

第一章 常用的Views

第1节:SwiftUI空白项目的创建步骤:

1、打开Xcode,然后使用菜单命令:File > New > Project命令,打开项目创建窗口。
2、在项目模板选择窗口中,选择Single View App模板,然后点击Next按钮,进入下一步设置窗口。
3、在项目配置窗口中,需要勾选Use SwiftUI复选框,然后填写其它的配置选项,点击Next按钮,完成项目的创建。
4、SwiftUI项目创建完成之后,其项目结构和代码功能如下图所示:

 


5、项目导航区:

文件名称 说明
AppDelegate.swift 提供didFinishLaunchingWithOptions等方法,用来处理程序启动之后的事件,或者响应来自外部的事件。
SceneDelegate.swift 设置应用程序窗口的rootViewController,并指定使用哪个ContentView作为rootViewController的rootView。
ContentView.swift 项目的初始界面,用户界面上的可视控件可以放置在此文件中。
Assets.xcassets 项目的资源文件,您可以在此处放置项目中所需的图片、颜色等资源。
LaunchScreen.storyboard 用来配置项目启动过程中所显示的内容。
Info.plist 项目的配置属性文件,配置产品名称、版本号、Build号、Bundle Identifier等项目。

6、代码编辑器:

  • SwiftUI使用声明性语法,因此开发者可以简单地说明用户界面应该做什么。
  • 例如,您可以编写需要包含文本字段的项目列表,然后描述每个字段的对齐方式,字体和颜色。
  • 您的代码比以前更简单,更易于阅读,从而节省您的时间和维护。


7、ContentView.swift代码说明:

//导入SwiftUI框架
import SwiftUI 		             

//定义一个名为ContentView的结构体,该结构体遵循View协议,遵循View协议的元素才可以在SwiftUI框架中。就像在UIKit中,所见皆UIView一样,在SwiftUI中,所见皆是View。
struct ContentView: View {		 
//添加View协议中的body属性,在body属性中通过SwiftUI提供的各种布局控件,完成界面元素的搭建。关键词some表示返回的是某种View,但是SwiftUI不需要在意是具体的哪种View
    var body: some View {
    	//在屏幕上显示一个标签,标签的内容位于双引号之内
        Text("Hello World")
    }
}

//当处于Debug模式时,允许执行下方的代码
#if DEBUG
//定义一个遵循PreviewProvider的结构体,用于设置在右侧预览区需要实时预览的内容
struct ContentView_Previews: PreviewProvider {
//添加PreviewProvider协议中的previews属性,用来设置在实时预览区显示的内容
    static var previews: some View {
    	//设置在实时预览区显示ContentView结构体中的内容,您还可以在此设置预览的模拟器尺寸、是否Dark Mode等选项。
        ContentView()
    }
}
#endif

8、SceneDelegate.swift代码说明:

//使用此方法可以选择性地配置UIWindow窗口,并将其附加到提供的UIWindowScene
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {

        if let windowScene = scene as? UIWindowScene {
	    //初始化一个UIWindow窗口对象
            let window = UIWindow(windowScene: windowScene)
	    // 使用一个UIHostingController实例,作为该窗口的根 view controller
            window.rootViewController = UIHostingController(rootView: ContentView())
	    // 将新建的窗口作为当前程序的窗口对象
            self.window = window
	    // 将窗口作为主窗口并显示
            window.makeKeyAndVisible()
        }
    }

 

SwiftUI课程章节导航区:

 

 

iOS开发相关互动课程列表,手把手学习iOS开发,App Store免费下载:
1、互动教程合集:https://apps.apple.com/cn/app/id1392811165
2、Xcode互动教程免费下载地址:https://itunes.apple.com/cn/app/id1063100471
3、Swift语言入门实例互动教程免费下载地址:https://itunes.apple.com/cn/app/id1320746678
4、app开发中的神兵利器免费下载地址:https://itunes.apple.com/cn/app/id1209739676
5、Objective-C语言应用开发互动教程免费下载地址:https://apps.apple.com/cn/app/id838877136 

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/fzhlee/article/details/99637541

智能推荐

Linux学习之网络相关命令_nc -u 172.0.0.1 12345-程序员宅基地

文章浏览阅读965次。strace、traceroute、tracert、sar、ifconfig、ip、nc、lsof、stat、netstat、ps、pstree、ss、telnet、top、Htop、iotop、powertop、iftop、dstat、nethogs、Nmon、vnstat、host、dig、route、tcpdump_nc -u 172.0.0.1 12345

/etc/hosts.conf_/etc/host.conf-程序员宅基地

文章浏览阅读2.6k次。作用指定如何解析主机域名,可设置网络安全。默认文件内容默认情况,/etc/hosts.conf 文件有如下内容 order hosts,bind multi on12参数说明order是解析顺序的参数,order hosts,bind,nis ,说明先查询解析/etc/hosts文件,然后DNS,再是NIS。multi表示是否运行/etc/hosts文件允许主机指定多个多个地址 ,multi on表示运行。nospoof是否允许服务器对ip地址进行其欺骗,nospoof on表_/etc/host.conf

工业机器人四大家族(ABB、库卡、安川)全套资料,欢迎下载!_abb机器人 panbaidu com-程序员宅基地

文章浏览阅读7.1k次,点赞7次,收藏10次。自1954年世界上第一台机器人诞生以来,世界工业发达国家已经建立起完善的工业机器人产业体系。日本、德国的工业机器人水平全球领先,“四大家族”(ABB、库卡、发那科、安川)为全球主要的工业机器人供应商,占据全球约50%的市场份额,这主要因为他们具备先发优势和技术沉淀。 图表1:全球工业机器人“四大家族”介绍随着我国工业自动化、智能化的发展加速,工业机器人的应用普及也带来了市场的急剧增长。既然在中国机..._abb机器人 panbaidu com

Linux基础命令(常用基本操作命令 管道 重定向 grep)_输入重定向命令,首先输入grep ipv6 /etc/*,观察结果,然后将此命令的输出信息-程序员宅基地

文章浏览阅读410次。终端命令格式command [-option] [parameter]command :命令option : 选项parameter:参数查阅命令帮助信息command –help : 帮助信息man command: Linux手册中函数的具体使用通配符* :任意个数字符? :至少一个字符[] :字符组 [abc][a-f]自动补全..._输入重定向命令,首先输入grep ipv6 /etc/*,观察结果,然后将此命令的输出信息

ultraedit高亮显示verilog文件_verilog.uew-程序员宅基地

文章浏览阅读9.5k次,点赞4次,收藏14次。1、下载文件到官网下载Verilog的语法高亮文件,链接如下:http://www.ultraedit.com/index.php?name=Content&pa=showpageπd=40#wordfiles2、文件配置将下载到的“verilog.uew”放到ulteaedit安装路径下的wordfiles文件夹内,以及C:\Documents and Setti_verilog.uew

黑马程序员---IO流二_记录一个程序运行的次数,当满足指定次数,改程序就不可以再继续运行了-程序员宅基地

文章浏览阅读941次。1. 字符流----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------3.1 概念:计算机不区分二进制文件与文本文件。所有的文件都是以二进制形式存储的,因此,从本质上说,所以的文件都是二进制文件。所以字符流是建立在字节流之上,它能够提供字符层次的编码和解码。在写入一个字符时,Java虚拟机会将字符_记录一个程序运行的次数,当满足指定次数,改程序就不可以再继续运行了

随便推点

什么是低音炮,低音炮的原理与音效-程序员宅基地

文章浏览阅读1.2k次。什么是低音炮,低音炮的原理与音效2011-06-15 15:16 低音炮是大家的一个俗称或者简称,严格讲应该是:同轴喇叭,高音仔,超高音,超重低音。就人耳可闻的音频分析而言,由超重低音、低音、低中音、中音、中高音、高音、超高音等组成。 ..._音效是控制低音炮的原理

TypeSDK总体设计思路和架构-程序员宅基地

文章浏览阅读2.1k次。引言:本文旨在提供读者制作一个自己的聚合SDK的思路,抛砖引玉,让更多的读者对聚合SDK有好的理解。 这是最好的时代,这是最坏的时代,这是智慧的时代,这是愚蠢的时代;这是信仰的时期,这是怀疑的时期;这是光明的季节,这是黑暗的季节;这是希望之春,这是失望之冬;人们面前有着各样事物,人们面前一无所有;人们正在直登天堂;人们正在直下地狱。——《双城记》 双城记的开头,正是_typesdk

keras第一个例程mnist_mlp.py解读-程序员宅基地

文章浏览阅读6.4k次。装好keras后,马上运行了例程minst_mlp.py,哇好牛逼,准确率98.4%,但是并不知道自己干了啥。好吧,啃代码。 1. 开头就懵了,数据集在哪呐。 好,从这句入手,找到mnist.py, 从网上下载了minst.pkl.gz,自己顺手下了下来,解压,打开,,,然而并看不懂。肿么办? 不怕,看这里:机器学习–读取mnist数据集 对于这个数据集的详情也可以参考这里:THE_mnist_mlp.py

Solidity 从入门到实战(三)_remix 转账-程序员宅基地

文章浏览阅读1.7k次,点赞3次,收藏8次。Solidity 从入门到实战(三)注意:本专栏主要来自于https://www.bilibili.com/video/BV1St411a7Pk?p=11&spm_id_from=pageDriver的学习笔记以及https://blog.csdn.net/weixin_45067603/article/details/105751748以太坊中的地址1.以太坊中的地址以40位的16进制表示,储存以uint160进行存储2.地址之间支持大小比较、3.可以分为外部账户地址和合约地址_remix 转账

工具:VMware虚拟机各种后缀文件总结_.vmem-程序员宅基地

文章浏览阅读5.6k次,点赞7次,收藏20次。一、文件介绍.log日志文件。这个文件记录了VMwareWorkstation对虚拟机调节运行的情况,记录虚拟机操作,可用了故障诊断。.vmdk这是一个虚拟磁盘文件,它储存了虚拟机硬盘驱动器里的内容。一台虚拟机可以由一个或几个虚拟磁盘文件组成。如果你已经特别指定了虚拟磁盘每2GB为一单独文件的话,虚拟磁盘的大小就决定了虚拟磁盘文件的数量。随着数据写入虚拟磁盘,虚拟磁盘文件将变大,直到这些文件为2GB。(如果你在创建虚拟磁盘时已经把所有的空间都分配了,那么这些文件将在初始时就具..._.vmem

C语言——死亡游戏_今天她玩了一个新游戏,发现每次死亡后角色的金币都会掉落,假设角色开局有g个金币,-程序员宅基地

文章浏览阅读1.3k次,点赞5次,收藏18次。问题描述:据说著名犹太历史学家 Josephus有过以下的故事:在罗马人占领乔塔帕特后,39 个犹太人与Josephus和他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被敌人抓到,于是决定了一个自杀方式,41个人排成一个圆圈,由第1个人开始报数,每报数到第3人该人就必须自杀,然后再由下一个重新报数,直到所有人都自杀身亡为止。然而Josephus 和他的朋友并不想遵从。请你编写一个函数,计算一下Josephus 和他的朋友应该安排在什么位置,才能免于一死(最后剩下他们两人)。【要求人的总数与报数均由键_今天她玩了一个新游戏,发现每次死亡后角色的金币都会掉落,假设角色开局有g个金币,

推荐文章

热门文章

相关标签