【发布时间】:2019-11-22 17:09:28
【问题描述】:
我正在尝试构建一个在 VStack 中包含 Text 的视图。我希望VStack 填满屏幕的整个宽度,我希望其中的Text 也能做到这一点。据我所知,代码如下:
import SwiftUI
struct Test: View {
@State private var text = "Hello, World!"
var body: some View {
VStack {
Text(text)
.frame(maxWidth: .infinity)
.animation(.default)
Button(action: {
self.text = (self.text == "Text") ? "Hello, World!" : "Text"
}) {
Text("Toggle")
}
}
.frame(maxWidth: .infinity)
}
}
struct Test_Previews: PreviewProvider {
static var previews: some View {
Test()
}
}
当我检查预览并将鼠标悬停在文本和堆栈上时,它完全显示了我的预期,Text 是全宽的。但是,当我运行应用程序并调试视图层次结构时,它显示 Text 框架已调整大小以适合文本。虽然通常我不会介意这一点,但当文本更改为更长的副本时,它会导致动画显示椭圆。是否可以阻止 Text 调整大小以适应副本?
【问题讨论】:
-
动画代码是什么?
-
我刚刚更新了代码以显示动画正在做什么的示例。
-
对了,既然文字是不可动画的,你也不需要换帧动画,那你为什么用
animation()呢?