Как предотвратить анимацию кнопки при нажатии

#ios #animation #button #swiftui

#iOS #Анимация #кнопка #swiftui

Вопрос:

Я пытаюсь запретить анимацию кнопки при нажатии, но мне это не удалось.

Я попытался установить UIButton.appearance().isHighlighted , .adjustsImageWhenHighlighted и .showsTouchWhenHiglighted , чтобы false . Я также пробовал:

 Button(action: {}) {
   Text("X")
}
.animation(.none)
  

Ответ №1:

Я думаю, что самым чистым решением этой проблемы будет отказ от использования Button . Вместо этого вы можете сделать это следующим образом:

 Text("X")
  .onTapGesture {
    print("clicked!")
  }
  

Комментарии:

1. Мне нужно использовать кнопку.

Ответ №2:

Почти, чтобы отключить анимацию в каком-то месте, мы должны установить nil , например

 Button(action: {}) {
   Text("X")
}
.animation(nil)     // << here !!
  

Протестировано с Xcode 12.1 / iOS 14.1

Комментарии:

1. Я использую ту же среду, но она работает только при первом нажатии. После этого анимация возвращается.

Ответ №3:

Если вы не можете заставить ее работать каким-либо другим способом, вы можете отключить кнопку и прикрепить к ней распознаватель жестов касания.