SwiftUI 官方教程(二)

2. 自定义 Text View

为了自定义 view 的显示,我们可以自己更改代码,或者使用 inspector 来帮助我们编写代码。

在构建 Landmarks 的过程中,我们可以使用任何编辑器来工作:编写源码、修改 canvas、或者通过 inspectors ,无论使用哪种工具,代码都会保持更新。

接下来,我们使用 inspector 来自定义 text view 。

SwiftUI教程

2.1 在预览中,按住 Command 并单击问候语来显示编辑窗口,然后选择 Inspect 。

编辑窗口显示了可以修改的不同属性,具体取决于其 view 类型。

2.2 用 inspector 将文本改为 Turtle Rock ,这是在 app 中显示的第一个地标的名字。

SwiftUI教程

2.3 将 Font 修改为 Title 。

这个修改会让文本使用系统字体,之后它就能正确显示用户的偏好字体大小和设置。

Edit the code by hand to add the .color(.green) modifier; this changes the text’s color to green.

To customize a SwiftUI view, you call methods called modifiers. Modifiers wrap a view to change its display or other properties. Each modifier returns a new view, so it’s common to chain multiple modifiers, stacked vertically.

2.4 在代码中添加 .color(.green) ,将文本的颜色更改为绿色。

如果想自定义 SwiftUI 的 view,我们可以调用一类叫做 modifiers 的方法。这类方法通过包装一个 view 来改变它的显示或者其他属性。每个 modifiers 方法会返回一个新的 view,因此我们可以链式调用多个 modifiers 方法。

ContentView.swift

import SwiftUI

struct ContentView: View {
var body: some View {
Text("Turtle Rock")
.font(.title)
.color(.green)
}
} struct ContentView_Preview: PreviewProvider {
static var previews: some View {
ContentView()
}
}

view 的真实来源是其实是代码,当我们使用 inspector 修改或删除 modifiers 时,Xcode 会立即更新我们的代码。

2.5 这次我们在代码编辑区按住 Command ,单击 Text 的声明来打开 inspector ,然后选择 Inspect 。单击颜色菜单并且选择 Inherited ,这样文字又变回了黑色。

2.6 注意,Xcode 会自动针对修改来更新代码,例如删除了 .color(.green) 。

ContentView.swift

import SwiftUI

struct ContentView: View {
var body: some View {
Text("Turtle Rock")
.font(.title) }
} struct ContentView_Preview: PreviewProvider {
static var previews: some View {
ContentView()
}
}

SwiftUI教程(一)

SwiftUI教程(三)

最新文章

  1. [Tool] SourceTree操作中遇到错误(Filename too long)的解决方案
  2. union的限制, 临时表大小的优化
  3. java sdk与jdk区别
  4. 分析.Net里线程同步机制
  5. Uc爆破工具
  6. Android—监听器
  7. Android开发-API指南-<category>
  8. 共享内存 share pool (2):BUCKET /FREE LISTS /RESERVED FREE LISTS /UNPINNED RECREATABLE CHUNKS (lru first)
  9. 安装Netsharp演示插件
  10. POJ 2986 A Triangle and a Circle 圆与三角形的公共面积
  11. 微信小程序开发之入门篇(熟悉项目结构)
  12. [转]STL的内存分配器
  13. Eddy's research I
  14. 关于C语言指针几个容易混淆的概念
  15. sql基础之DDL(Data Definition Languages)
  16. .Net Webapi Swagger增加登录功能
  17. Mysql 删除重复记录,只保留最小的一条
  18. redis主从配置+哨兵模式
  19. index.go
  20. win10运行LoadRunner Controller遇到的坑

热门文章

  1. 总结Linq或者lamdba的写法
  2. centos6 或者 centos7 重置遗忘的root密码
  3. (转)基于Metronic的Bootstrap开发框架经验总结(6)--对话框及提示框的处理和优化
  4. React Native - 使用Vibration API实现设备振动
  5. day006 数字类型和字符串类型的内置方法
  6. 【转载】JSTL 标签大全详解
  7. [系统资源攻略]memory
  8. 【JavaScript游戏开发】JavaScript+HTML5封装的苏拉卡尔塔游戏(包含源码)
  9. Modbus串行通信
  10. [luogu3244 SHOI2016] 黑暗前的幻想乡(容斥原理+矩阵树定理)