SwiftUI Кнопка с изображением при нажатии
Чтобы изменить изображение, отображаемое кнопкой SwiftUI, когда пользователь нажимает кнопку, можно создать пользовательский стиль кнопки, который принимает заголовок и два изображения для состояний по умолчанию и при нажатии. Этот пользовательский стиль можно достичь, создав структуру, которая соответствует протоколу ButtonStyle. ButtonStyleConfiguration предоставляет доступ к метке кнопки, состоянию isPressed и роли кнопки, которые могут быть использованы для определения отображаемого изображения. В методе makeBody можно проверить конфигурацию кнопки и вернуть метку с правильным изображением на основе состояния isPressed. Затем можно использовать этот пользовательский стиль для создания конкретного типа кнопки, такого как InfoButton, который использует пользовательский стиль для отображения другого изображения при нажатии. InfoButton можно использовать в приложении, вызвав его с действием, которое будет выполнено при нажатии кнопки. Также можно добавить анимацию к пользовательскому стилю, чтобы масштабировать изображение при нажатии, используя модификатор symbolEffect. Этот подход позволяет достичь похожего эффекта конфигураций состояний кнопок UIKit в SwiftUI. Пользовательский стиль кнопки можно повторно использовать для других кнопок в приложении, что делает его удобным решением. В целом, создание пользовательского стиля кнопки - это хороший способ настроить внешний вид кнопок SwiftUI, особенно когда встроенные стили не отвечают вашим потребностям.