Sobes.tech
Назад к задачам
Junior — Senior
43

Плавный переход масштаба при нажатии кнопки

Получайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Условие задачи

Необходимо добавить анимацию к пользовательскому стилю кнопки, чтобы изменение её масштаба происходило плавно, а не резкими скачками.

struct AppButtonStyle: ButtonStyle {
    func body(_ ctx: Configuration) -> some View {
        Text(ctx.label)
            .scaleEffect(ctx.isPressed ? 0.5 : 1.0)
            .animation(.easeInOut(duration: 0.2), value: ctx.isPressed)
    }
}

В данном примере используется SwiftUI. При нажатии (ctx.isPressed == true) кнопка уменьшится до 50 % от исходного размера, а при отпускании вернётся к нормальному размеру. Плавность достигается за счёт применения анимации easeInOut с длительностью 0.2 секунды.