我正在尝试对文本进行动画处理,使其在屏幕上滚动(用它来制作库存应用程序),我无法让它完全离开屏幕,有人可以帮忙吗...
这就是我目前所拥有的
let text = "Some text to animate"
private var is = true
var body: some View {
VStack {
Text(text)
.fixedSize()
.frame(width: 100, alignment: is ? .trailing : .leading)
.animation(Animation.linear(duration: 5).repeatForever())
}
最佳答案
一个可能的解决方案是使用带有 .move 非对称过渡的单个文本。
这是一个简化的演示。使用 Xcode 13.4/iOS 15.5 进行测试
主要部分:
var body: some View {
GeometryReader { gp in
VStack {
Text(text)
.fixedSize()
.frame(width: gp.size.width + textWidth, alignment: .trailing)
.id(go)
.transition(transition)
.onAppear{ go.toggle() }
.animation(animation, value: go)
}
}.fixedSize(horizontal: false, vertical: true)
}
关于ios - 在 SwiftUI 中为屏幕上和屏幕外的文本添加动画效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72716413/