2011-08-02 4 views
0

저는 파이 차트를 개발했습니다. 사용자가 원형 차트 슬라이스를 클릭하면 차트에서 나옵니다. 현재, 파이의 각 조각을 다른 CGLayer에 그립니다. 사용자가 슬라이스를 탭하면 특정 픽셀의 색상을 선택하고 해당 레이어를 끌어내는 RGB 코드 (하드 코딩 된)와 일치시킵니다.iOS SDK- 원형 차트 슬라이스에서 터치를 감지하는 방법은 무엇입니까?

코어 플롯과 같은 타사 차트 라이브러리를 사용하고 싶지 않습니다.

각 레이어를 개별적인 그래픽 엔터티로 만들 수있는 방법이있어서 해당 개체를 만질 수 있습니까?

감사

답변

0

당신이 지점이 경로에있는 경우 다음 테스트 할 수 CG를 사용하는 경우.

체크 아웃 CGPathContainsPointhere.

3

터치의 X, Y 좌표를 사용하여 거리와 함께 원형 차트의 중심까지의 각도를 계산할 수 없습니까?

거리가 반경보다 작 으면 각도를 사용하여 어떤 차트를 탭했는지 파악합니다.

1

CAShapeLayer을 사용하여 개별 파이 조각을 나타냅니다. CAShapeLayer 인스턴스에는 경로 속성이 있습니다.이 속성을 사용하면 해당 경로 내에 포인트가 있는지 테스트 할 수 있습니다.

상위 UIView에서 터치 포인트를 감지 한 다음 모든 파이 조각을 반복하고 CGPathContainsPoint 함수를 사용하여 해당 원형 조각 안에 포인트가 있는지 테스트합니다.

관련 문제