Skip to main content
Language한국어
공학5분 읽기2026년 10월

SwiftUI에서 스프링 애니메이션은 어떻게 작동합니까?

짧은 답변

SwiftUI에서는 .animation(.spring) 또는 withAnimation(.spring)을 사용하여 스프링을 추가합니다. iOS 17부터 주요 설정은 지속 시간과 바운스이며 사전 설정은 .smooth(바운스 없음), .snappy(약간) 및 .bouncy(자세히)입니다. 이전 코드는 응답 및 DampingFraction을 사용합니다. SwiftUI 스프링은 새로운 애니메이션이 중단되어도 속도를 유지하므로 제스처가 자연스럽게 느껴집니다.

핵심 포인트

  • 상태 변경에는 withAnimation(.spring)을 사용하고, 뷰에서는 .animation(.spring, value:)을 사용하세요.
  • iOS 17 이상: .spring(duration:bounce:) 및 .smooth, .snappy 및 .bouncy 사전 설정
  • 이전 API: .spring(response:dampingFraction:blendDuration:)
  • 스프링은 iOS 17부터 SwiftUI의 기본 애니메이션 스타일입니다.
  • 단속 스프링이 속도를 유지하므로 동작이 원활하게 전달됩니다.

SwiftUI는 상태 변화를 애니메이션으로 보여줍니다. withAnimation(.spring) 내에서 isExpanded와 같은 값이 변경되면 이에 의존하는 모든 뷰는 스프링을 사용하여 새로운 레이아웃으로 이동합니다.

iOS 17 이상에서 스프링을 설명하는 가장 간단한 방법은 두 가지 값, 즉 지속 시간(정착하는 데 걸리는 대략적인 시간)과 바운스(오버슛되는 정도)를 사용하는 것입니다. 바운스가 0이면 오버슈트 없이 부드러운 모션이 제공됩니다. 값이 높을수록 바운스가 추가됩니다. Apple은 또한 .smooth, .snappy 및 .bouncy와 같은 사전 설정을 제공합니다.

이전 코드는 .spring(response:dampingFraction:)을 사용합니다. 응답은 기간과 유사하며 감쇠 비율이 1이면 바운스가 없음을 의미하고 값이 낮을수록 바운스가 추가됨을 의미합니다. 두 형태 모두 동일한 물리적 스프링을 설명합니다.

스프링의 가장 큰 장점은 단속입니다. 사용자가 다시 탭하거나 드래그 동작이 애니메이션 중간에 종료되면 새 스프링이 현재 위치와 속도에서 시작되므로 점프가 없습니다. 드래그 동작의 경우 사용자가 놓을 때 동작의 속도를 전달하여 요소가 던져진 방향으로 계속되도록 합니다.

동일한 구성 요소를 웹이나 Android에서도 실행해야 하는 경우 스프링 값을 공유 모션 토큰으로 유지하는 것이 도움이 됩니다. 우리가 만드는 ExodeUI에는 SwiftUI 런타임이 있으므로 스프링이 포함된 하나의 설계된 구성 요소가 SwiftUI 및 기타 플랫폼에서 작동할 수 있습니다.

자주 묻는 질문

SwiftUI의 기본 애니메이션은 무엇입니까?

iOS 17부터 기본 애니메이션은 부드러운 스프링입니다.

.snappy와 .bouncy의 차이점은 무엇인가요?

.snappy는 약간의 오버슛으로 빠르게 안정됩니다. .bouncy가 더 많이 초과됩니다. .smooth에는 오버슈트가 없습니다.

응답 및 DampingFraction을 지속 시간 및 바운스로 어떻게 변환합니까?

응답은 대략 지속 시간에 매핑됩니다. 1의 감쇠 비율은 바운스 0입니다. 감쇠 비율이 낮을수록 바운스가 더 커집니다.

드래그 동작으로 속도를 어떻게 추가하나요?

드래그가 끝날 때 속도를 읽고 보간 스프링이나 초기 속도를 허용하는 최신 스프링 API를 사용하세요.

관련 가이드와 예제

코드를 작성하기 전에 스프링을 조정하세요

슬라이더를 드래그하고 동작을 관찰하며 SwiftUI, CSS 및 기타 플랫폼의 스프링 값을 복사합니다.

스프링 생성기 열기
ExodeUI

EXODEUI DESKTOP

A little space for good ideas.

Choose your platform to get the official ExodeUI installer.

Looking for Intel Mac or other builds? Explore the web studio or check all download options.

Prefer the browser? Try for free in your browser →