2011-02-14 2 views
1

팬 제스처를 사용하여 앱에서 항목을 드래그합니다. 가장자리로 끌 때 UIScrollView를 사용하여 "바운스 (bounce)"효과를 얻을 수 있다는 것을 알고 있습니다. 그러나, 그 해킹처럼 보입니다, 그래서 수동으로 항목을 드래그 할 때 그 효과를 얻을 방법을 찾고 싶습니다 (프레임 또는 중심점 설정). 표준 방법이나 Accelerate 프레임 워크의 물리 라이브러리가 있다면 궁금합니다. 내 자체 엔진을 구현하지 않아도되는 것과 같은 것입니다.UIScrollView없이 iphone 앱에서 바운스 효과를 에뮬레이트하십시오.

답변

0

표준 UIView 애니메이션 커브는 가속/감속 곡선을 사용하는 커브이므로 좋은 "바운스 백"동작을 제공해야합니다.

정말 사용하기 쉽습니다. 당신이 위치에 "다시 스냅"하려는 결정되면, 다음을 수행하십시오

[UIView beginAnimations:nil context:nil]; 
CGRect newFrame = viewToAnimate.frame; 
newFrame.origin.x = snapBackXcoordinate; 
viewToAnimate.frame = newFrame; 
[UIView commitAnimations]; 

는 완전히있는 UIScrollView를 에뮬레이션 당신은 또한 당신이 더 많은 스트레칭을 중지하기 전에 "최대 스트레치"거리를 설정해야합니다.

그러나 왜 바퀴를 다시 발명합니까? 사용자가 제공 한 UIKit 구성 요소가 사용됩니다. UIScrollView에 뷰를 배치하면 트릭을 수행하고 계속해서 사용하십시오. 당신이 개발하고 디버깅하는 시간을 절약 할 수 있습니다.

+0

나는 바퀴를 개혁하지 않는다는 당신의 요지를 본다. 하지만 바운스는 한 방향 (왼쪽)으로 드래그 할 때만 발생합니다. 가로로 스크롤하면 UIScrollView가 왼쪽과 오른쪽을 모두 튀게됩니다. – akaru

+0

그렇다면 SDK를 벗어난 사용자 정의는 직접 해보는 것을 의미합니다. 재사용 가능한 구성 요소 라이브러리를 구축하는 것도 재미 있습니다. – Bogatyr

관련 문제