GroupBox 在选择器的选择更改时没有动画

问题描述 投票:0回答:1

我在组框中有一个选择器视图。当更改选择器内的选定值时,选择器标签的大小会发生变化,组框的宽度也会发生变化。我在组框中添加了一个动画,其中选择器的选择值作为监视更改的值。但组框没有动画

GroupBox {
             
                    Picker("Period", selection: $periodIndex) {
                        ForEach(0..<periods.count, id: \.self) { index in
                            Text(periods[index]).tag(index)
                        }
                    }
                    .tint(.white)   
       
        }
        .animation(.spring, value: settingsViewModel.periodIndex)

由于我从未使用整数进行动画处理,所以我使用了一个布尔值,该布尔值在选择器的选择值发生变化时进行切换,但它也不起作用

animation swiftui picker groupbox
1个回答
0
投票

我不认为缺乏动画与

GroupBox
有任何关系。这正是当选择器样式为
Picker
时原生
.menu
的工作方式。但您在这里会注意到更多一点,因为
GroupBox
添加了一个背景形状,当选择更改时,该背景形状的大小也会发生变化。

我找不到一种方法来动画改变。但您至少可以通过将

minWidth
应用于
Picker
来避免组大小的变化。比如:

Picker("Period", selection: $periodIndex) {
    // content as before
}
.frame(minWidth: 100)

选择本身仍然会发生变化而没有动画,但至少

GroupBox
不会改变大小。

诗。您可以编辑自己的帖子来修复

value
修饰符上的错误
.animation

© www.soinside.com 2019 - 2024. All rights reserved.