对于我的SwiftUI应用程序,我创建了一个简单的Title
视图,该视图具有设置的字体大小和文本颜色。 Title
声明如下:
struct Title: View {
var string: String
var body: some View {
Text(string)
.font(.system(size: 32))
.color(Color.black)
}
}
我现在在内容视图的正文中有以下文本对象:
var body: some View {
VStack(alignment: .leading) {
Text("Welcome")
.font(.largeTitle)
.color(Color.black)
Text("to SwiftUI")
.font(.largeTitle)
.color(Color.secondary)
}
}
所以现在,我想用我的Text
替换这两个Title
:
var body: some View {
VStack(alignment: .leading) {
Title("Welcome")
Title("to SwiftUI")
}
}
替换视图后,我从Xcode收到一些看似无关的错误消息,这些错误消息阻止了应用程序的编译:
静态成员'leading'不能用于'HorizontalAlignment'类型的实例
'(LocalizedStringKey)->文本'不能转换为'(LocalizedStringKey,String ?, Bundle ?, StaticString?)->文本'
“字体”不能转换为“字体?”
...等等。恢复到Text
而不是Title
“修复”问题。
有趣的是,我还有一个自定义的PrimaryButton
视图,我可以添加它而没有任何问题:
struct PrimaryButton: View {
var title: String
var body: some View {
Button(action: { print("tapped") }) {
Text(title)
.font(Font.primaryButton)
.offset(y: 1)
.padding(.horizontal, 20)
.padding(.vertical, 14)
}
}
}
...然后使用它:
PrimaryButton(title: "Let's go")
这仅仅是一个beta问题,还是我缺少什么?
答案 0 :(得分:6)
您需要将string:
添加到Title()
初始化程序中:
var body: some View {
VStack(alignment: .leading) {
Title(string: "Welcome")
Title(string: "to SwiftUI")
}
}
当前,编译器错误具有误导性,并不位于实际问题所在的位置。
答案 1 :(得分:1)
您缺少初始化程序中的string:
参数。
请在下面找到更新的代码:
var body: some View {
VStack(alignment: .leading) {
Title(string: "Welcome")
Title(string: "to SwiftUI")
}
}
仅供参考:
我已经创建了一个示例应用程序
// MARK - CustomView
struct ContentView : View {
var body: some View {
VStack{
CustomView(aString: "First String")
CustomView(aString: "Second String")
}
}
}
// MARK - CustomView
struct CustomView : View {
var aString: String
var body: some View {
Text(aString)
}
}
答案 2 :(得分:0)
今天(2019年10月1日),Swift提示我将from glob import glob
for filename in glob(path+"/*.png"):
im = image.imread(filename)
...
替换为。 string:
。
verbatim:
今天开始工作
Text(verbatim: "Pressure")
昨天工作,但今天没有。
hth