完整中文教程及代码请查看 https://github.com/WillieWangWei/SwiftUI-Tutorials

 

创建和组合 View

此部分将指引你构建一个发现和分享您喜爱地方的 iOS app —— Landmarks 。首先我们来构建显示地标详细信息的 view。

Landmarks 使用 stacksimagetext 等组件进行组合和分层,以此来给 view 布局。如果想给视图添加地图,我们需要引入标准 MapKit 组件。在我们调整设计时,Xcode 可以作出实时反馈,以便我们看到这些调整是如何转换为代码的。

下载项目文件并按照以下步骤操作。

  • 预计完成时间:40 分钟
  • 初始项目文件:下载

1. 创建一个新项目并且浏览 Canvas

SwiftUI 的 app 模板来创建一个新的 Xcode 项目,并且浏览一下这个 canvas。

 
 

1.1 打开 Xcode ,在 Xcode 的启动窗口中单击 Create a new Xcode project ,或选择 File > New > Project

 

 

1.2 选择 iOS 平台, Single View App 模板,然后单击 Next

 

 SwiftUI教程

1.3 输入 Landmarks 作为 Product Name ,勾选 Use SwiftUI 复选框,然后单击 Next 。选择一个位置保存此项目。

 

 

SwiftUI教程

1.4 在 Project navigator 中,选中 ContentView.swift

默认情况下, SwiftUI view 文件声明了两个结构体。第一个结构体遵循 View 协议,描述 view 的内容和布局。第二个结构体声明该 view 的预览。

ContentView.swift

import SwiftUI

struct ContentView: View {
var body: some View {
Text("Hello World")
}
} struct ContentView_Preview: PreviewProvider {
static var previews: some View {
ContentView()
}
}
 

 

1.5 在 canvas 中,单击 Resume 来显示预览。

Tip:如果没有 canvas ,选择 Editor > Editor and Canvas 来显示。

 

 

1.6 在 body 属性中,将 Hello World 更改为自己的问候语。更改代码时,预览便会实时更新。

ContentView.swift

import SwiftUI

struct ContentView: View {
var body: some View {
Text("Hello SwiftUI!")
}
} struct ContentView_Preview: PreviewProvider {
static var previews: some View {
ContentView()
}
}

最新文章

  1. Java _ JDK _ Arrays, LinkedList, ArrayList, Vector 及Stack
  2. Introdution to 3D Game Programming With DirectX11 第11章 习题解答
  3. PDF编译出现错误解决办法
  4. C语言的本质(19)——预处理之一:宏定义
  5. WPF后台写ControlTemplate总结
  6. C#中读取xml文件指定节点
  7. C语言:冒泡排序
  8. 工厂模式——Head First
  9. C#微信小程序服务端获取用户解密信息
  10. spring-boot随笔
  11. linux下cpu物理个数、多核、超线程判断解析
  12. P1270 【“访问”美术馆】
  13. Spring-boot 1.5.2 下隐藏Banner
  14. vlc player验证交换机igmp
  15. dokcer 的export 、improt和save 、load
  16. 详解shuffle过程(转载)
  17. Mahout源码目录说明&&算法集
  18. 从0开始 Java学习 packet用法
  19. Struts05---动态查询
  20. 回溯法——n后问题

热门文章

  1. WEB笔记-5、字体和文本
  2. I2C controller core之Bit controller(05)
  3. 【sqli-labs】 less20 POST - Cookie injections - Uagent field - Error based (POST型基于错误的cookie头部注入)
  4. python 处理中文 读取数据库输出全是问号
  5. softmax回归---sigmoid(1)
  6. IDEA全局查找快捷键
  7. HashMap源码分析笔记(一)
  8. 无法启用internet连接共享,为LAN连接配置的IP地址需要使用自动IP寻址
  9. vue+ElementUI 分页
  10. luogu P4725 多项式对数函数 (模板题、FFT、多项式求逆、求导和积分)