iPad版Swift Playgrounds应用程序中的以下代码给了我一条错误消息:
Expression type `String` is ambiguous without more context
有人知道为什么会这样吗?提前感谢。
import SwiftUI
import Foundation
import PlaygroundSupport
struct ContentView: View {
@State private var progress: Double = 0.6
var body: some View {
VStack {
Text("test")
HStack {
Slider(value: $progress)
Text(String(format: "%.2f", progress))
}
}.border(Color.blue)
}
}
PlaygroundPage.current.setLiveView(ContentView())
是的,这很奇怪。出于某种原因,iPad上的Swift Play是不同的。
改用带说明符的字符串插值:
替换
Text(String(format: "%.2f", progress))
具有
Text("\(progress, specifier: "%.2f")")
注意:
如果你不想让你的文本到处乱跳,可以使用一种带有单间距数字的字体,比如Helvetica Neue。将.font(font.custom(“Helvetica Neue”,大小:20))
添加到Text
语句的末尾。
代码没有问题…重新启动Xcode