Animation ScrollView中的动画不工作?使用Xcode 11 beta 6
我试图在Scrollview中进行转换动画,但发现Scrollview中的工作方式有所不同。但还是无法在里面做动画。我提供代码,请看一下。使用Xcode 11 beta 6Animation ScrollView中的动画不工作?使用Xcode 11 beta 6,animation,scrollview,swiftui,Animation,Scrollview,Swiftui,我试图在Scrollview中进行转换动画,但发现Scrollview中的工作方式有所不同。但还是无法在里面做动画。我提供代码,请看一下。使用Xcode 11 beta 6 import SwiftUI struct ContentView : View { @State private var isButtonVisible = false var body: some View { NavigationView { ScrollView{
import SwiftUI
struct ContentView : View {
@State private var isButtonVisible = false
var body: some View {
NavigationView {
ScrollView{
VStack {
Button(action: {
// withAnimation {
self.isButtonVisible.toggle()
// }
}) {
Text("Press me")
}
if isButtonVisible {
Text("sss")
.frame(height: true ? 50 : 0, alignment: .center)
.background(Color.red)
.animation(.linear(duration: 2))
// .transition(.move(edge: .top))
}
}
}
}
}}
这一定是一个bug,我建议你向苹果公司提交一份bug报告。我找到了一个解决方法,请参见下面的代码,但不幸的是,它发现了另一个bug 为了使ScrollView中的动画正常工作,可以将内容封装在自定义视图中。这将解决这个问题 这将揭示一个新的问题,我在代码中添加的边框表明了这一点:添加文本视图时,它会将部分内容转移到ScrollView之外 你会发现这是不正确的。尝试使用默认值isButtonVisible=true启动应用程序,您将看到它以不同的方式呈现应用程序 结构ContentView:View{ var body:一些观点{ 导航视图{ 滚动视图{ 封装视图.borderColor.green }.蓝色 } } } 结构封装视图:视图{ @状态私有变量isButtonVisible=false var body:一些观点{ VStack{ 文本填充 按钮操作:{ withAnimation.easeInOutduration:2.0{ self.isButtonVisible.toggle } } { 文本按我 } 如果按钮不可见{ 文本 .frameheight:真?50:0,对齐:。居中 .transition.opacity .backgroundColor.red } 间隔棒 }.红色 } }
我报告了这个错误。这很奇怪,当我们封装它们时,很多东西都开始工作了。这是一个错误还是我做错了什么?