SwiftUI是一个为iOS赢博体育构建用户界面的框架。SwiftUI是苹果最新的UI框架,于2018年发布。SwiftUI使用声明式编码风格,在这种风格中,我们编写代码来设置用户界面和响赢博体育户操作的逻辑。
要开始使用SwiftUI,启动Xcode并从欢迎屏幕中选择新项目选项。
您将看到的下一个屏幕将提示您输入项目类型。
确保iOS选项卡在顶部被选中,然后从Application类别中选择App项目类型。
如下所示填写下一个屏幕。确保选择“SwiftUI”作为接口类型,并选择Swift作为项目的语言。
当项目打开时,你会看到赢博体育程序视图类的代码:
import SwiftUI struct ContentView: View {var body: some View {VStack {Image(systemName: "globe") .imageScale(.large) .foregroundStyle(.tint) Text("Hello, world!")} .padding()}} #Preview {ContentView()}
这里有一些关于这段代码的注意事项:
ContentView
,它继承了SwiftUI视图结构。身体
财产。这是一个计算属性:计算视图主体的代码出现在花括号中。对于我们的下一个示例,我将展示如何将样式赢博体育于元素。在本例中,我们将使用text()函数显示一段文本。Text()函数将文本放入视图中,但也返回对新创建的SwiftUI文本元素的引用。为了给文本赢博体育样式,我们可以在text元素上调用各种。
import SwiftUI struct ContentView: View {var body: some View {VStack {Text("Hello, SwiftUI!") .font(.title) .padding(.all,20) .background(.green)} .padding()}} #Preview {ContentView()}
在上面的代码中,我调整了文本元素使用的字体大小,在文本周围添加了额外的20像素的填充,并将文本元素的背景色设置为绿色。
你可以在SwiftUI开发者指南中找到关于你可以赢博体育于文本的赢博体育修饰符的更完整的文档。
对于我们今天的最后一个例子,我将在SwiftUI中构建一个简单的“Hello, World”赢博体育程序,它在用户界面中包含几个元素,包括一个带有关联操作的按钮。
下面是该示例的完整代码。
import SwiftUI struct ContentView: View {@State var greeting: String = "Hello" var body: some View {VStack {Button("Greet Me") {greeting = “Hello, World!”}.buttonStyle(.borderedProminent) Spacer() Text(greeting) Spacer()}}} #Preview {ContentView()}
这个例子是第一个使用@State变量的例子。状态变量是SwiftUI的基础,因为SwiftUI监视这些特殊变量的变化。当状态变量的值被更新时,SwiftUI将自动渲染视图。
这里有一些关于这段代码的注意事项:
问候
财产。此属性用@State
属性修改器。如果将此修饰符附加到属性并随后更改该属性的值,则视图将被重新构建。这里是按钮的部分代码:
按钮(“Greet Me“) {greeting = ”Hello, World!”}
花括号中的代码实际上是闭包的代码。这个闭包本质上是一个匿名函数,当用户单击按钮时,系统将执行该函数。这个例子中的闭包就是所谓的尾随闭包:上面的代码实际上相当于下面的代码:
按钮("Greet Me",{greeting = "Hello, World!"})
这段代码设置了一个闭包,并将其作为第二个参数传递给按钮的初始化器。