내 사용자 지정보기에서 iPhone Uiscrollview의 영화 대 스크롤 동작을 어떻게 재현 할 수 있습니까?
-
16-09-2019 - |
문제
Uiscrollview의 영화 대 스크롤 행동을 재현하고 싶지만 해당 수업을 사용하거나 사용할 수 없습니다. 어떡해?
해결책
좋아, 나는 Uiscrollview의 역학을 포착하는 내 자신의 라이브러리를 구현함으로써 이것에 대답했다.
내 코드에서 유용한 것은 코디네이션 시스템, 애니메이션 속도 및 사용중인 특정 UI 클래스와 무관하다는 것입니다. 선택한 사용자 정의보기 클래스에 쉽게 중첩 될 수 있습니다.
iPhone의 기본 영화 대 스크롤 행동은 흥미 롭습니다. 손가락을 오랫동안 잡고 다양한 방향으로 움직이면 마지막 방향 만 스크롤 모션을 계산하는 데 사용됩니다.
그러나이 코드를 직접 구축하려고하면 마지막 두 점을 사용하여 동작 방향을 계산하는 것이 절단되지 않는다는 것을 빠르게 알 수 있습니다. 대신, 내 코드는 짧은 터치의 역사를 유지하고 선형 보간을 사용하여 약간의 시간 전에 터치가 어디에 있었는지 결정합니다. 이 보간 된 지점은 모션 벡터를 계산하기위한 기초로 사용됩니다. 이것은 매우 유쾌한 상호 작용으로 이어집니다.
코드는 Github에서 사용할 수 있습니다. http://gist.github.com/100855. BSD 라이센스에 따라 릴리스됩니다.
다른 팁
그렇다면 uiscrollview는 당신에게 효과가 없었습니까? 그 수업은 꽤 유연합니다 ...
Dave, 나는 당신이 코드로 자신의 질문에 대답했지만 다음과 같은 것을 설정하지는 않습니다.
myScrollView.bounces = YES;
myScrollView.pagingEnabled = YES;
myScrollView.directionalLockEnabled = YES;
구체적으로, 그것은 당신이 다시 구현 한 것처럼 들립니다 directionLockEnabled
. 어쩌면 Uiscrollview를 사용할 수없는 이유를 이해할 수 있습니다. 더 흥미로운 문제입니다 :-)
이것은 멋지다! 스크롤 가능한보기가 1902-2037 년 범위의 하루의 그래픽 데이터 인 앱에서 사용 했으므로 UiscrollView는 효율적이지 않습니다.