Как изменить цвета анимированной навигационной ссылки при нажатии другой кнопки?IOS

Программируем под IOS
Ответить
Anonymous
 Как изменить цвета анимированной навигационной ссылки при нажатии другой кнопки?

Сообщение Anonymous »


Я пытаюсь изменить цвета анимированной навигационной ссылки при нажатии другой кнопки. Фон NavigationLink имеет два разных цвета, которые постоянно меняются в анимации, и я хочу изменить эти два цвета, когда нажимаю кнопку, не останавливая анимацию.

импортировать SwiftUI структура FirstView: Просмотр { @State var animate: Bool = false @State varвторичныйЦвет: Цвет = Цвет("SecondaryAccentColor") @State var PrimaryColor: Color = Color("AccentColor") var body: some View { ПрокруткаView { VStack(интервал: 10) { Text("Нажмите кнопку "Перейти", чтобы перейти на следующую страницу!") .font(.title) .fontWeight(.полужирный) Text("Нажмите кнопку Цвет, чтобы изменить цвет!") .padding(.bottom, 25) Навигационная ссылка( место назначения: Следующая страница(), этикетка: { Текст("НАВИГАЦИЯ") .foregroundColor(.white) .font(.title3) .fontWeight(.bold) .frame(высота: 60) .frame(maxWidth: .infinity) .background(animate ?вторичныйцвет:первичныйцвет) .cornerRadius(15) }) .padding(.горизонтальный, 70) .тень( цвет: живой ? вторичныйЦвет.opacity(0.4): PrimaryColor.opacity(0.4), радиус: 15, х: 0, у: 30) Разделитель() Кнопка (действие: { //КОД ДЛЯ ИЗМЕНЕНИЯ ЦВЕТОВ }) { Цвет текста") } } .frame(макс.ширина: 400) .multilineTextAlignment(.center) .padding(30) .onAppear(выполнить: addAnimation) } .frame(maxWidth: .infinity, maxHeight: .infinity) } функция addAnimation() { охранник !анимация еще {возврат } DispatchQueue.main.asyncAfter(deadline: .now() + 1.0) { сАнимацией( Анимация .easeOut(длительность: 0,5) .repeatForever() ) { анимировать.toggle() } } } } структура FirstView_Previews: PreviewProvider { статические предварительные просмотры var: some View { НавигацияВью { ПервыйПросмотр() .navigationTitle("Привет") } } } Я пытался это сделать, но не получилось:

Кнопка(действие: { первичныйЦвет = Цвет.красный вторичныйЦвет = Цвет.желтый }) { Цвет текста") } Когда я делаю это, цвет NavigationLink меняется на желтый, а анимация останавливается.
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»