iOS SDK - Как обнаружить прикосновение к срезу круговой диаграммы? - PullRequest
0 голосов
/ 02 августа 2011

Я разработал анимированную круговую диаграмму, в которой, когда пользователь нажимает на срез круговой диаграммы, он выходит из диаграммы. В настоящее время я рисую каждый кусок пирога на другом CGLayer. Когда пользователь нажимает на фрагмент, я выбираю цвет этого конкретного пикселя и сопоставляю его с кодом RGB (жестко запрограммированным), который вытягивает соответствующий слой.

Я не хочу использовать какую-либо стороннюю библиотеку диаграмм, такую ​​как базовый график.

Есть ли способ сделать каждый слой отдельным графическим объектом, чтобы можно было обнаружить касание этого объекта?

Спасибо

Ответы [ 3 ]

3 голосов
/ 07 мая 2012

Разве вы не можете просто использовать координаты X, Y касания, чтобы вычислить угол к центру круговой диаграммы и расстояние?

Если расстояние меньше радиуса, тогда используйте угол, чтобы выяснить, на каком графике было выполнено касание.

1 голос
/ 12 декабря 2012

Я использовал CAShapeLayer для представления отдельных кусочков пирога. CAShapeLayer экземпляры имеют свойство path , которое можно использовать для проверки, находится ли точка в этом пути.

Просто определите точку соприкосновения на родительском UIView, а затем выполните итерацию по всем вашим кусочкам пирога и используйте функцию CGPathContainsPoint, чтобы проверить, находится ли точка в этом кусочке пирога.

0 голосов
/ 02 августа 2011

Если вы используете CG, вы можете проверить, находится ли точка внутри пути.

Оформить заказ CGPathContainsPoint здесь .

...