【发布时间】:2019-10-26 13:28:55
【问题描述】:
只是无法理解这一点。我有一个完美的简单动画。但是当我将视图包装到 ScrollView 中(通过取消注释 2 行)它不再动画了吗?有人知道吗?
import SwiftUI
struct ContentView: View {
@State var offset = CGSize(width: 0, height: 0)
var body: some View {
// ScrollView {
VStack(spacing: 50) {
Rectangle()
.frame(width: 100, height: 100)
.offset(self.offset)
Button(action: {
withAnimation {
self.offset.width += 66
}
})
{
Text("Animate me")
}
}.frame(width: 300)
// }
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
【问题讨论】:
-
我试过你的代码,它在模拟器中运行良好。当矩形包含在 ScrollView 中时,它会进行动画处理。我注意到的唯一区别是按钮和矩形位于屏幕顶部而不是中心。
-
@Andrew 复制粘贴问题中的代码我遇到了与 iTukker 相同的问题:如果动画位于 ScrollView 内,则动画将不起作用。您使用的是哪个 xCode 版本?
-
@superpuccio Xcode 11.1,在模拟器和预览版都试过了,效果很好。
-
@Andrew 我也在使用那个版本。很奇怪。我有同样的 iTukker 问题。
-
我也在 Xcode 11.1 上,但没有成功。 @superpuccio 的回答成功了,我会接受的。仍在学习 SwiftUI,并且已经偶然发现了我的第一个动画。