Значок Неверная анимация при нажатии кнопки ⇐ IOS
-
Anonymous
Значок Неверная анимация при нажатии кнопки
У меня возникли проблемы с выбором кнопок. Я использую перечисление, чтобы отслеживать страницы в приложении и их значения, такие как заголовок страницы и значок страницы. Я использую эти значения для создания меню с кнопками внутри VStack. Я извлекаю все значения перечисления (AppScreen) с помощью ForEach и заполняю их метками кнопок. Пока все хорошо, но когда я нажимаю кнопку, анимация значка влияет и на ранее выбранную кнопку. Позвольте мне привести пример:
Названия моих кнопок — «Кнопка 1» и «Кнопка 2» с соответствующими значками. Когда я выбираю «Кнопку 1», анимация значков работает отлично, но когда я выбираю «Кнопку 2», она работает неправильно, поскольку анимируется обе значки «Кнопка 1» и «Кнопка 2», а не только «Кнопка». 2."
Где я ошибаюсь?
Вот мой код:
импортировать фундамент enum AppScreen: CaseIterable, Identifying { корпус btn1, btn2 идентификатор переменной: AppScreen {self} вар screenName: String { переключить себя { случай .btn1: "btn1" случай .btn2: "btn2" } } вар screenIcon: String { переключить себя { case .btn1: "восклицательный знак.стрелка.треугольник.2.круговой путь" случай .btn2: "человек.2" } } } struct AppSideBar: View { @Binding var appScreen: AppScreen? Выбор частной переменной @State: String = "" var body: some View { HStack { ВСтек { ForEach(AppScreen.allCases) { экран в Кнопка { выбор = screen.screenName } этикетка: { ВСтек { Изображение (имя системы: screen.screenIcon) Текст(экран.имяэкрана) .foregroundStyle(выбор == screen.screenName ? .red : .white) } } .symbolEffect(.bounce, значение: выбор == screen.screenName) .buttonStyle(.без границ) } } } #if os(macOS) .frame(ширина: NSScreen.main!.visibleFrame.width / 1.6, высота: NSScreen.main!.visibleFrame.height - 100) #endif } }
У меня возникли проблемы с выбором кнопок. Я использую перечисление, чтобы отслеживать страницы в приложении и их значения, такие как заголовок страницы и значок страницы. Я использую эти значения для создания меню с кнопками внутри VStack. Я извлекаю все значения перечисления (AppScreen) с помощью ForEach и заполняю их метками кнопок. Пока все хорошо, но когда я нажимаю кнопку, анимация значка влияет и на ранее выбранную кнопку. Позвольте мне привести пример:
Названия моих кнопок — «Кнопка 1» и «Кнопка 2» с соответствующими значками. Когда я выбираю «Кнопку 1», анимация значков работает отлично, но когда я выбираю «Кнопку 2», она работает неправильно, поскольку анимируется обе значки «Кнопка 1» и «Кнопка 2», а не только «Кнопка». 2."
Где я ошибаюсь?
Вот мой код:
импортировать фундамент enum AppScreen: CaseIterable, Identifying { корпус btn1, btn2 идентификатор переменной: AppScreen {self} вар screenName: String { переключить себя { случай .btn1: "btn1" случай .btn2: "btn2" } } вар screenIcon: String { переключить себя { case .btn1: "восклицательный знак.стрелка.треугольник.2.круговой путь" случай .btn2: "человек.2" } } } struct AppSideBar: View { @Binding var appScreen: AppScreen? Выбор частной переменной @State: String = "" var body: some View { HStack { ВСтек { ForEach(AppScreen.allCases) { экран в Кнопка { выбор = screen.screenName } этикетка: { ВСтек { Изображение (имя системы: screen.screenIcon) Текст(экран.имяэкрана) .foregroundStyle(выбор == screen.screenName ? .red : .white) } } .symbolEffect(.bounce, значение: выбор == screen.screenName) .buttonStyle(.без границ) } } } #if os(macOS) .frame(ширина: NSScreen.main!.visibleFrame.width / 1.6, высота: NSScreen.main!.visibleFrame.height - 100) #endif } }
Мобильная версия