【iOS7】 스프링 같은 애니메이션을 실현하는 UIView의 새로운 메소드

iOS7에서 추가된, 스프링풍의 타이밍 커브로 애니메이션 시킬 수 있는 UIView의 메소드 animateWithDuration:delay:usingSpringWithDamping:initialSpringVelocity:options:animations:completion: (101 문자)를 사용해 보았습니다.

메소드의 정의는 이런 느낌입니다.
+ (void)animateWithDuration:(NSTimeInterval)duration
                      delay:(NSTimeInterval)delay
     usingSpringWithDamping:(CGFloat)dampingRatio
      initialSpringVelocity:(CGFloat)velocity
                    options:(UIViewAnimationOptions)options
                 animations:(void (^)(void))animations
                 completion:(void (^)(BOOL finished))completion;

인수가 많습니다만, 대부분은 종래의 애니메이션 메소드와 같기 때문에, 포인트는 dampingRatiovelocity 의 2 개만.

dampingRatio



UIView.h의 UIViewAnimationWithBlocks 범주로 정의 된 부분을 읽으면,

When dampingRatio is 1, the animation will smoothly decelerate to its final model values ​​without oscillating. Damping ratios less than 1 will oscillate more and more before coming to a complete stop.

그리고 있습니다.
  • 1이면 진동없이 최종 값을 향해 부드럽게 감속합니다.
  • 1 이하로 작을수록 완전히 정지 할 때까지 진동이 커집니다.

    라는 것.

    velocity



    마찬가지로 UIView.h의 UIViewAnimationWithBlocks 카테고리로 정의 된 부분을 읽으면,

    You can use the initial spring velocity to specify how fast the object at the end of the simulated spring was moving before it was attached. It's a unit coordinate system, where 1 is defined as travelling the total animation distance in a secon 're changing an object's position by 200pt in this animation, and you want the animation to behave as if the object was moving at 100pt/s before the animation started, you'd pass 0.5. You'll typically want to pass 0 velocity.

    그리고 있습니다.

    스프링의 초속을 의미하며,
  • 이 값의 「1」은 「애니메이션으로 이동하는 거리 전체를 1초로 이동한다」를 의미한다
  • 예를 들어 애니메이션 전체에서 200 포인트 이동하는 경우, 초속을 100 포인트/s로 하고 싶으면 0.5를 지정한다
  • 우선 0을 지정하고

  • 라는 것입니다.

    샘플



    iOS7 Sampler 에 샘플 코드를 추가했습니다.



    슬라이더로 dampingRatiovelocity 를 조정하면서 거동을 확인할 수 있습니다.

    좋은 웹페이지 즐겨찾기