在 SwiftUI 中使用 Text 时如何解决 "No exact matches in call to initializer" 错误?
How can I solve "No exact matches in call to initializer" error when I am using Text in SwiftUI?
我刚开始使用 SwiftUI,有一些基本问题。
我尝试在文本字段中显示旋转值。我收到的错误消息是:“初始化程序调用中没有完全匹配”
哪里错了?
import SwiftUI
struct ContentView: View {
@State var rotation: Double = 0
var body: some View {
VStack {
VStack {
Text("Hello, world!")
.padding()
Slider(value: $rotation, in: 0 ... 360, step: 0.1)
.padding()
Text(rotation)
}
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
你应该return一个String
类型来初始化文本,像这样:
struct ContentView: View {
@State var rotation: Double = 0
var body: some View {
VStack {
VStack {
Text("Hello, world!")
.padding()
Slider(value: $rotation, in: 0 ... 360, step: 0.1)
.padding()
Text(rotation.string)
}
}
}
}
extension CustomStringConvertible { var string: String { get { return String(describing: self) } } }
为了好玩,您也可以试试这个:
struct ContentView: View {
@State var rotation: Double = 0
var body: some View {
VStack {
Text("Hello, world!").rotationEffect(Angle(degrees: rotation)).padding()
Slider(value: $rotation, in: 0 ... 360, step: 0.1).padding()
Text("\(rotation)")
}
}
}
我刚开始使用 SwiftUI,有一些基本问题。 我尝试在文本字段中显示旋转值。我收到的错误消息是:“初始化程序调用中没有完全匹配”
哪里错了?
import SwiftUI
struct ContentView: View {
@State var rotation: Double = 0
var body: some View {
VStack {
VStack {
Text("Hello, world!")
.padding()
Slider(value: $rotation, in: 0 ... 360, step: 0.1)
.padding()
Text(rotation)
}
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
你应该return一个String
类型来初始化文本,像这样:
struct ContentView: View {
@State var rotation: Double = 0
var body: some View {
VStack {
VStack {
Text("Hello, world!")
.padding()
Slider(value: $rotation, in: 0 ... 360, step: 0.1)
.padding()
Text(rotation.string)
}
}
}
}
extension CustomStringConvertible { var string: String { get { return String(describing: self) } } }
为了好玩,您也可以试试这个:
struct ContentView: View {
@State var rotation: Double = 0
var body: some View {
VStack {
Text("Hello, world!").rotationEffect(Angle(degrees: rotation)).padding()
Slider(value: $rotation, in: 0 ... 360, step: 0.1).padding()
Text("\(rotation)")
}
}
}