SwiftUI ScrollView 自动添加不需要的动画
Posted
技术标签:
【中文标题】SwiftUI ScrollView 自动添加不需要的动画【英文标题】:SwiftUI ScrollView adds unwanted animation automatically 【发布时间】:2020-05-06 07:21:32 【问题描述】:我在 SwiftUI ScrollView 中遇到动画问题。我可以使用下面的代码在 Playground 中重现它。我只想为不透明度设置动画,但它也会为缩放设置动画。如果我使用 VStack
而不是 ScrollView
它可以工作。但我需要它是可滚动的。
有没有人遇到过同样的问题,可以给我一个快速提示吗?
实际行为:https://giphy.com/gifs/h8DSbS1xZ9PJyHIJrY
import SwiftUI
import PlaygroundSupport
struct ContentView: View
@State var showText = 0.0
var body: some View
ScrollView
Text("Test")
.font(.title)
.opacity(showText)
Text("Another really really long text")
.opacity(showText)
.frame(width: 320, height: 420)
.background(Color.red)
.onAppear
withAnimation(Animation.easeInOut(duration: 1))
self.showText = 1.0
PlaygroundPage.current.liveView = UIHostingController(rootView: ContentView())
【问题讨论】:
【参考方案1】:这是可能的解决方案。使用 Xcode 11.4 / ios 13.4 测试
ScrollView
VStack
Text("Test")
.font(.title)
Text("Another really really long text")
.fixedSize()
.opacity(showText)
【讨论】:
以上是关于SwiftUI ScrollView 自动添加不需要的动画的主要内容,如果未能解决你的问题,请参考以下文章
ScrollView 行为怪异(Xcode 11 GM 种子 - SwiftUI)
SwiftUI - 嵌入 ScrollView 后文本被截断
SwiftUI 水平 ScrollView 具有不可见的填充
SwiftUI:如何仅在设备处于横向模式时启用 ScrollView?