【发布时间】:2019-10-21 16:33:26
【问题描述】:
对于我的 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)
}
}
所以现在,我想用我的Titles 替换这两个Texts:
var body: some View {
VStack(alignment: .leading) {
Title("Welcome")
Title("to SwiftUI")
}
}
替换视图后,我从 Xcode 收到一些看似无关的错误消息,导致应用程序无法编译:
静态成员“leading”不能用于“HorizontalAlignment”类型的实例
'(LocalizedStringKey) -> Text' 不能转换为 '(LocalizedStringKey, String?, Bundle?, StaticString?) -> Text'
“字体”不能转换为“字体?”
...等等。恢复为 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")
问题
这只是一个测试版问题,还是我遗漏了什么?
【问题讨论】: