Swift 如何仅为一个特定修改器更改应用动画?
如何仅将Swift 如何仅为一个特定修改器更改应用动画?,swift,macos,swiftui,Swift,Macos,Swiftui,如何仅将.animation应用于.offset,同时保持其他修改器更改不受其影响。在偏移量之后添加.animation,也会对字体大小的更改设置动画 还尝试为上面的修改器放置.animation(nil),但是,它也会停止设置动画的偏移。由于ZStack包含不同的条件渲染DynamicText,动画修改器还将在内容更改之间应用淡入淡出过渡,这是我想要避免的 // Main view var body: some View { GeometryReader { geo in
.animation
应用于.offset
,同时保持其他修改器更改不受其影响。在偏移量之后添加.animation
,也会对字体大小的更改设置动画
还尝试为上面的修改器放置.animation(nil)
,但是,它也会停止设置动画的偏移。由于ZStack
包含不同的条件渲染DynamicText
,动画修改器还将在内容更改之间应用淡入淡出过渡,这是我想要避免的
// Main view
var body: some View {
GeometryReader { geo in
VStack {
DynamicText()
}
.animation(nil)
.frame(height: geo.size.height)
.offset(y: self.viewModel.offset ? 5.0 : 0)
.animation(.default)
}
}
提供的快照是不可测试的,所以只需考虑一下,尝试明确地将动画限制为偏移值,如
var body: some View {
GeometryReader { geo in
VStack {
DynamicText()
}
.frame(height: geo.size.height)
.offset(y: self.viewModel.offset ? 5.0 : 0)
.animation(.default, value: self.viewModel.offset) // << here !!
}
}
var主体:一些视图{
GeometryReader{geo-in
VStack{
动态文本()
}
.框架(高度:地理尺寸高度)
.偏移(y:self.viewModel.offset?5.0:0)
.animation(.default,值:self.viewModel.offset)//是否尝试在DynamicText()上使用.animation(nil)
?
var body: some View {
GeometryReader { geo in
VStack {
DynamicText()
}
.frame(height: geo.size.height)
.offset(y: self.viewModel.offset ? 5.0 : 0)
.animation(.default, value: self.viewModel.offset) // << here !!
}
}