text - SwiftUI - VStack 使子文本跨全宽
问题描述
我正在尝试构建一个Text
在VStack
. 我想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
调整大小以适应副本?
解决方案
您可以尝试其他动画,例如spring
:
Text(text)
.frame(maxWidth: .infinity)
.animation(.spring(response: 0.0, dampingFraction:0.2))
推荐阅读
- javascript - 多个 p5.image 的问题
- spring-security - 如何向 Cognito 发布的 id_token 添加“组”自定义声明?
- r - 固定效应 logit 套索模型
- php - 如何更改 WP-API 的 JWT 身份验证的 JSON 响应?
- laravel-5 - Laravel 5.8 Schema添加外键不起作用
- algorithm - 合并两个组
- ssl - “算法 ECDH 不可用”在 JRockit 6 上使用 bcprov 和 bctls
- debian - 为什么'yield from'需要一个封闭的'while 1'?
- javascript - 使用nodejs读取java文件
- sql - SQL在postgresql中获取数组