SwiftUI快速入门

SwiftUI是在Xcode上创建用户界面的一种新便捷方式。 如果您想快速介绍SwiftUI,那么此博客文章适合您。

首先,让我们创建一个具有SwiftUI支持的项目。 最低系统要求是macOS Catalina和Xcode11。创建一个新项目“ File> New> Project ...” ,选择“ Single View App” ,并确保选择“ User Interface:SwiftUI”



该项目将如下所示:



您可能已经注意到,现在您可以在Preview上立即看到所有更改。 例如,尝试将文本更改为“ Hello,Habr!” 。 酷吗?

如果没有更改,请单击“ 继续”按钮(位于右上角)。 如果“ 预览”不可见-单击“ 编辑器”选项 ,并确保选择了“ 画布”(⌥选项+⌘Command+↵Enter)


视图,文本,堆栈...


如果选择ContentView.swift ,那么我们将看到:

struct ContentView: View { var body: some View { Text(", !") } } 

在这里,我们看到ContentView>正文具有显示“ Hello,Habr!”Text 。 让我们添加另一个文本。 如果您尝试直接添加到正文视图中 ,则Xcode会发誓。 为此,请首先使用HStackVStack 。 按Command并单击Text(⌘Command+ Text) ,然后选择“ Embed in HStack”



该命令将自动创建一个HStack并在其中添加我们的文本。 现在,您可以添加其他文本:

 struct ContentView: View { var body: some View { HStack { Text(",") Text("!") } } } 

Swiftui检查器


如果单击“⌘Command+ Text”,然后选择“ Show SwiftUI Inspector ...” ,将打开一个检查器,您可以在其中直观地更改文本属性。 例如,如果在检查器中将“字体”更改为“大标题” ,则代码也将更改为.font(.largeTitle) 。 很简单:



什么是国家


要了解什么是State ,让我们添加一些操作。 我们重复之前的操作: “⌘Command+ HStack” ,选择“嵌入VStack” ,然后将Button添加到此VStack中

 struct ContentView: View { @State var tapCount = 0 var body: some View { VStack { HStack { Text(",") .font(.largeTitle) .foregroundColor(Color.green) Text("!") .font(.largeTitle) .fontWeight(.bold) } Button(action: { self.tapCount += 1 }) { Text("Tap count \(tapCount)") .font(.title) } } } } 

每次您单击按钮时,我们都会更改tapCount的值。 但是状态是什么意思? 如果我们希望在某些值更改时重新显示视图 ,则应使用State 。 在这种情况下,当我们单击按钮时,将更改tapCount ,它被指定为State 。 这就是为什么每次点击都会再次渲染我们的身体

实时预览


此刻,如果您单击该按钮,则什么也不会发生。 要解决此问题并像模拟器一样工作,您需要激活“实时预览” 。 激活按钮位于右下角:



现在再试一次。 每次按下按钮,该值都会改变。

接下来是什么?


现在您有了SwiftUI的基本概念。 此外,我建议您阅读SwiftUI教程 ,观看有关SwiftUIWWDC视频 。 该文档可在此处找到。

链接到github项目在这里

Source: https://habr.com/ru/post/zh-CN483316/


All Articles