2010-12-09 4 views
1

내 생각에 iPhone은 UIKit의 직관적이고 부드럽고 좋은 느낌의 스크롤링 구성 요소 때문에 다른 스마트 폰에 큰 이점이 있습니다. 이런 종류의 스크롤을 사용하는 UIKit을 사용하여 간단한 게임을 구현하고 싶지만 UIScrollView를 사용할 수없는 이유는 충분히 커스터마이징이 불가능하기 때문입니다. UIScrollView는 스크롤링과 어떻게 비슷합니까?

나는 나 자신이 스크롤을 구현하기 위해 노력하고 두 개의 서로 다른 접근 방식을 시도 :
  1. 가 나는 UIPanGestureRecognizer 싶게는 인식이 나에게 제공하는 번역에 따라 내 사용자 지정 컨트롤의 범위를 이동 사용. 움직이는 동안 손가락을 들어 올린 후 부드럽게 움직이게하려면 애니메이션을 시작해야합니다. 인식기가 나에게주는 속도와 고정 된 시간을 사용하여 손가락을 들어 올린 후 스크롤해야하는 거리를 계산합니다. 나는 직선 운동과 쉬운 운동을 시도했지만, 둘 다 이상하게 보였다. (더 나중에)

  2. 나는 OnTouchMoved와 OnTouchEnded를 사용하여 스크롤을 구현했다. OnTouchMove에서 나는 손가락의 움직임에 따라 경계를 움직입니다. 손가락이 움직이는 동안 속도를 직접 계산하기 위해 현재와 마지막 터치의 위치와 시간의 차이를 계산합니다. 손가락이 들리면 OnTouchEnded에서 1과 같이 애니메이션을 시작하지만 대신 자기 계산 속도를 사용합니다.

두 가지 방법 모두 내가 원하는 결과를 제공하지 못합니다. 손가락을 뗀 후에는 스크롤이 원활하게 진행되지 않습니다. celocity 곡선에 (날카로운) 굽음이있는 것 같습니다.

사과가이 부드러운 스크롤을 어떻게 처리하는지 아이디어가 있습니까? 내 현재의 추측은 두 개의 가까운 점으로 보간하는 것이 부정확하고 현재 가속도를 고려하지 않는다는 것입니다.

Thx 생각하기! Kie

답변

3

보이는 내용이없는 상태에서 UIScrollView를보기 위에 추가하지 않는 이유는 무엇입니까? 그런 다음 UIScrollViewDelegate 메서드를 사용하여 특정 동작에 대한 실제 뷰를 업데이트 할 수 있습니다. 예 : scrollViewDidScroll :을 사용하여 UIScrollView의 스크롤을 캡처하는 경우 스크롤 뷰의 오프셋을 사용하여 보이는보기를 업데이트 할 수 있습니다. scrollViewWillEndDragging :을 사용하여 기본보기를 scrollview와 동기화하고 scrollViewDidEndDecelerating을 사용하여 동기화를 중지 할 수 있습니다.

동일한 접근 방식을 사용하여 내 Animix 앱의 배경을 스크롤합니다. 맨 아래에 보이지 않는 스크롤 뷰가있어 사용자가 잔디를 왼쪽 및 오른쪽으로 드래그하여 배경을 이동할 수 있다는 느낌을줍니다.

관련 문제