Ok. 나는 여기에서하려고하는 것과 비슷한 많은 주제들을 보았지만 꽤 일치하는 것은 아무것도 없다. 어쩌면 내 접근 방식은 근본적인 문제가 아닙니다. 여기 거래가 있습니다.drawRect : 및 UIPanGestureRecognizer를 사용한 부드러운 애니메이션
drawRect : 내 UIView 하위 클래스에 차트를 그립니다. 그런 다음 UIPanGestureRecognizer를 사용하여 차트의 오프셋 (뷰 계층 구조가 아닌 내부)을 오른쪽/왼쪽으로 변환합니다. 이것은 훌륭하게 작동하지만, 문제는 인식기의 동작이 상대적으로 낮은 빈도로 시작된다는 것입니다. 특히, 결과 패닝은 말하자면 스크롤 뷰 또는 테이블 뷰에서보다 훨씬 더 빠릅니다. 특히 내 차트의 점수가 올라갈 때. 지금 내가하고 싶은 것은 냄비 제스처의 동작에서 그림을 그려 내지는 않지만 팬이 현재 순간에 발사 한 순간부터 오프셋을 보간하여 초당 30 번 같은 식으로 타이머를 발사하도록하십시오. 그러나 점점 더 복잡해지고 있습니다.
누구나 제안이? UIScrollView로이 작업을 실제로 수행해야합니까? 내가 데이터를 어느 방향 으로든 멀리 확장 할 수 있기를 원하지 않는 이유는 전체 경로를 한 번에 그릴 필요가 없기 때문입니다. 표시됩니다. CAShapeLayer를 사용해야합니까? 나는 다른 일을하기 전에 이러한 가능성을 가지고 놀고 싶습니다 ...
모든 입력/경험은 가장 환영 할 것입니다.
왜 당신이 패닝하는 동안'drawRect'가 호출되고 있습니까? 너는 단지 그 견해를 움직이지 않는가? –
아니요, pan은 drawRect에 반영된 "dataWindow"를 수정합니다. 뷰 자체는 이동하거나 크기를 조정하지 않습니다. – samson
아, 그럼 모든 스크롤 증가분마다 다시 그려 지나요? 그 일이 느려질 것입니다. 필자가 보았던 한 가지 트릭은 데이터를 이미지로 렌더링하고 새 데이터가 도착하면 데이터에서 다시 그리기 만하는 것입니다. 그렇지 않으면 이미지를 합성하는 것입니다. 또는 데이터 뷰를 scrollview에 넣고 다시 그리지 마십시오. 도착하면 솔루션을 게시하십시오. –