CLOSE SEARCH
POSTS TAGGED WITH: UIKit Dynamics

UIKit Dynamics #4 – UIAttachmentBehavior. for Bouncy UI

iOS 7의 메시지 앱을 보면, 이전 버전과는 달리 스크롤 속도에 따라서 버블의 위치가 유기적으로 변하는 것을 볼 수 있습니다. 마치 버블들이 스프링으로 연결된 것처럼 보이기도 합니다. UIKit Dynamics의 UIAttachmentBehavior는 Ease In, Ease Out과 같은 단조로운 애니메이션을 넘어서, 현실세계의 스프링 효과를 애니메이션으로 구현할 수 있도록 도와줍니다. 가장 기본적인 역할은 Dynamic Item과 특정 위치의 앵커를 연결하거나 Dynamic Item끼리 연결하여 상호작용하도록 하는 것입니다. 여기에 damping, frequency, length 속성을 통해 두 객체사이에 탄성을 추가할 수 있습니다.

UIKit Dynamics #3 – UICollisionBehavior

UICollisionBehavior를 사용하면 Dynamic Item 사이의 충돌 효과를 쉽게 구현할 수 있습니다. 복잡한 물리수식을 계산할 필요없이, 충돌 영역과 충돌을 처리할 Dynamic Item만 지정해 주면됩니다.

Collision Items

UICollisionBehavior가 충돌 효과를 적용하는 Dynamic Item들은 반드시 UIDynamicItem 프로토콜을 구현해야 합니다. 이 아이템들은 초기화 시점에 initWithItems: 메소드를 통해 추가되거나, 그 이후에 addItem: 메소드를 통해 추가될 수도 있습니다. removeItem: 메소드를 통해 원하는 아이템을 제거할 수도 있으며, 이 경우 제거된 아이템은 충돌 대상에서 즉시 제외됩니다.

UIKit Dynamics #2 – UIGravityBehavior. Galileo Galilei is coming to iOS

iOS 6의 뷰는 무중력 상태에서 지정된 위치를 둥둥 떠다니기만 했다면, iOS 7의 뷰는 갈리레오 갈리레이가 피사의 사탑에서 떨어뜨린 물체처럼 중력이 작용하는 방향으로 떨어집니다. 물론 실제로 떨어지는 것이 아니라 UIKit Dynamics가 제공하는 UIGravityBehavior 클래스를 통해 뷰에 중력백터를 설정하여 뷰가 질량을 가진 물체처럼 동작(에니메이션)하도록 하는 것입니다.

UIKit Dynamics #1 – More Realistic Animations in iOS 7

iOS의 애니메이션 기능은 정말 뛰어납니다. 특별히 어려운 소스코드를 작성하지 않고도 부드러운 애니메이션을 만들 수 있고, 사용자들은 이러한 에니메이션을 통해 멋진 시각적 피드백을 제공받습니다. 안드로이드나 윈도우 모바일 역시 에니메이션 기능을 제공하지만, 품질이나 개발 편의성 면에서 iOS의 기능을 따라오기는 힘들어 보입니다. 더욱이 이번 WWDC 2013에서 발표된 UIKit Dynamics와 Custom View Controller Transitions 기능으로 인해 에니메이션에 있어서만큼은  iOS가 이전보다 몇발 더 앞서가게 되었습니다. 이번 글에서는 UIKit Dynamics에 대해서 알아봅니다.