xcode 点击按钮时的图标错误动画

0kjbasz6  于 2023-11-21  发布在  其他
关注(0)|答案(1)|浏览(181)

我遇到了按钮选择问题。我使用枚举来跟踪应用程序中的页面及其值,如页面标题和页面图标。我使用这些值在VStack中创建一个包含按钮的菜单。我检索所有枚举值(AppScreen)使用ForEach并将它们填充到按钮的标签中。到目前为止,一切顺利,但当我选择一个按钮时,图标动画也会影响之前选择的按钮。让我举一个例子:
我的按钮的标题是“按钮1”和“按钮2”以及它们的相关图标。当我选择“按钮1”时,图标动画工作得很好,但是当我选择“按钮2”时,它不能正常工作,因为它同时显示“按钮1”和“按钮2”的图标,而不仅仅是“按钮2”。
我哪里做错了?
下面是我的代码:

  1. import Foundation
  2. enum AppScreen: CaseIterable, Identifiable {
  3. case btn1, btn2
  4. var id: AppScreen { self }
  5. var screenName: String {
  6. switch self {
  7. case .btn1: "btn1"
  8. case .btn2: "btn2"
  9. }
  10. }
  11. var screenIcon: String {
  12. switch self {
  13. case .btn1: "exclamationmark.arrow.triangle.2.circlepath"
  14. case .btn2: "person.2"
  15. }
  16. }
  17. }

个字符

tv6aics1

tv6aics11#

.symbolEffectdocumentation声明“每次值更改时都会触发动画”。因此,当条件从false变为true时会触发它,但当条件从true变为false时也会触发它。
为了解决这个问题,我认为你需要为每个按钮设置单独的标志,并且标志应该只在选择被应用时改变,而不是在选择被移开时改变。像这样:

  1. @State private var selectionApplied = [AppScreen: Bool]()

个字符

相关问题