'Double'不可转换为'CGFloat?'



我的Xcode一直给我一个双精度,不能转换为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)在高度。

在苹果开发网站上,它以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)
}

尝试将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)
}

根据类型和语言,您可能必须将一种类型显式强制转换为另一种类型,而不是期望该语言为您隐式强制

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)
}
}
}

最新更新