
Yapanimator 는 빠르고 친근한 물리 기반 애니메이션 시스템입니다. Yapanimator는 사용 편의성을 염두에두고 제정신 과 디자이너를 매우 행복하게 유지했습니다. 모든 애니메이션은 중단 가능하고 완료 블록을 포함하며 힘을 적용 할 수 있습니다 (예 : 전환의 제스처의 속도를 추가). 우리는 일반적으로 애니메이션 유형 ( CG 유형)에 대한 Animatable 프로토콜 적합성을 포함했지만 다른 유형에 적합성을 추가하기가 쉽습니다. Double S 배열로 표현하고 구성 할 수있는 모든 것을 애니메이션 할 수 있습니다. 속성보기, 음악 볼륨, 베 지어 경로, 색상 사이의 변형, 스무딩 브러시 스트로크, 목록은 계속됩니다. 상상력을 사용하십시오!
사용하기 쉽고 아름다운 애니메이션을 만들기 때문에 그 이유입니다. 다른 물리 기반 애니메이션 시스템 (예 : Uikit의 Spring Animations, Facebook의 Pop)이 있지만, 우리의 취향에 대한 너무 많은 코드, 부기 및 손잡이를 작성해야합니다. Yapanimator는 수년간 자체 앱에서 사용해 온 증류 N-TH 코드 반복을 나타냅니다. 우리는 그것이 우리의 일상에서 귀중한 것을 발견하고 당신도 그렇게 할 것이라고 생각합니다.
Yapanimator는 CALayer 및 UIView / NSView 에 볼트로 고정 된 편리한 확장 기능을 제공하여 각각 animatedLayer 및 animated 속성 아래에 1 라이너 애니메이션을 제공합니다.

func handle ( gesture : UIPanGestureRecognizer ) {
if gesture . state == . began {
squircle . animated . cornerRadius . animate ( to : squircle . bounds . width / 2.0 )
squircle . animated . rotationZ . animate ( to : . pi )
else if gesture . state == . changed {
squircle . animated . position . instant ( to : gesture . location ( in : nil ) )
} else if gesture . state == . ended {
squircle . animated . position . animate ( to : self . view . center )
squircle . animated . cornerRadius . animate ( to : 0 )
squircle . animated . rotationZ . animate ( to : 0 )
}
} 사용자 정의 애니메이터를 만드는 것은 간단합니다.
initialValue 이것은 애니메이터의 초기 값을 설정하고 애니메이션 유형을 알려줍니다.willBegin 전화했습니다. 애니메이션 할 속성의 실제 가치를 반환하십시오. 이를 통해 애니메이터는 애니메이터의 범위를 벗어난 경우 해당 값과 동기화 할 수 있습니다. (선택 과목)eachFrame 애니메이션의 각 프레임을 호출합니다. 일반적으로 애니메이터의 current.value 애니메이션하는 속성에 적용하는 곳입니다. 이를 사용하여 값을 확인하여 다른 동작 / 애니메이션을 트리거 할 수도 있습니다. frameAnimator = YapAnimator ( initialValue : square . frame , willBegin : { [ unowned self ] in
return self . square . frame
} , eachFrame : { [ unowned self ] ( animator ) in
self . square . frame = animator . current . value
} ) 
frameAnimator . bounciness = 1.5
frameAnimator . animate ( to : square . frame . insetBy ( dx : - 50 , dy : - 50 ) , completion : { animator , wasInterrupted in
if !wasInterrupted {
// animate back to the original value
animator . animate ( to : animator . current . value . insetBy ( dx : 50 , dy : 50 ) )
}
} ) 문제에 대한 질문을 자유롭게 물어보십시오. 우리는 그곳에서 응답하고, 답이 다른 사람들에게 도움이 될 것 같다면 이것을 읽고 위키를 시작하십시오.
Yapanimator는 YAP Studios가 소유하고 유지 관리합니다.