Назад к задачамПолучайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Junior — Senior
43
Плавный переход масштаба при нажатии кнопки
Условие задачи
Необходимо добавить анимацию к пользовательскому стилю кнопки, чтобы изменение её масштаба происходило плавно, а не резкими скачками.
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 секунды.