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

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

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

import Foundation

enum AppScreen: CaseIterable, Identifiable {
    case btn1, btn2
    
    var id: AppScreen { self }
    
    var screenName: String {
        switch self {
        case .btn1: "btn1"
        case .btn2: "btn2"
        }
    }
    
    var screenIcon: String {
        switch self {
        case .btn1: "exclamationmark.arrow.triangle.2.circlepath"
        case .btn2: "person.2"
        }
    }
}

个字符

tv6aics1

tv6aics11#

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

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

个字符

相关问题