我的Xcode一直给我一个Double不能转换为CGFloat错误。问题是,每当我更改代码时,错误就会继续发生。最初是在这条线上:
Text("left") .frame(width: 100.0, height: 100.0, alignment: .center)
,现在我将高度设置为100.0,它位于底部:TextField("example", text: "PLACEHOLDER") .frame(width: 300.0, height: 300.0, alignment: .center)
的高度。
在Apple开发人员网站上,它以swiftUI为例:
.frame(width: 200, height: 200, alignment: .topLeading)
我尝试删除小数,但我得到一个Int不能转换为CGFloat。
有一次我试图将CGFloat()放在每个位置,然后得到一个“ CGFloat不能转换为CGFloat吗?”。错误
感谢您的任何帮助,谢谢
import Cocoa
import SwiftUI
HSplitView{
VStack{
Text("left")
.frame(width: 100.0, height: 100.0, alignment: .center)
Text("left bottom")
.frame(width: 100.0, height: 100.0, alignment: .center)
Text("leftbottombottom")
.frame(width: 100.0, height: 100.0, alignment: .center)
}
TextField("example", text: "PLACEHOLDER")
.frame(width: 300.0, height: 300.0, alignment: .center)
}
答案 0 :(得分:1)
SwiftUI有时会报告错误错误,例如此处。您的问题是TextField("example", text: "PLACEHOLDER")
中存在类型错误。第二个参数应该是绑定,而不是字符串。这有效:
import Cocoa
import SwiftUI
struct MyView: View {
@State var text = "PLACEHOLDER"
var body: some View {
HSplitView{
VStack{
Text("left")
.frame(width: 100.0, height: 100.0, alignment: .center)
Text("left bottom")
.frame(width: 100.0, height: 100.0, alignment: .center)
Text("leftbottombottom")
.frame(width: 100.0, height: 100.0, alignment: .center)
}
TextField("example", text: $text)
.frame(width: 300.0, height: 300.0, alignment: .center)
}
}
}
答案 1 :(得分:0)
尝试将Double
投射到CGFloat
:
import Cocoa
import SwiftUI
HSplitView{
VStack{
Text("left")
.frame(width: CGFloat(100.0), height: CGFloat(100.0), alignment: .center)
Text("left bottom")
.frame(width: CGFloat(100.0), height: CGFloat(100.0), alignment: .center)
Text("leftbottombottom")
.frame(width: CGFloat(100.0), height: CGFloat(100.0), alignment: .center)
}
TextField("example", text: "PLACEHOLDER")
.frame(width: CGFloat(300.0), height: CGFloat(300.0), alignment: .center)
}
根据类型和语言,您可能必须将一种类型显式转换为另一种类型,而不是期望该语言为您隐式强制使用。