iOS SDK — как обнаружить прикосновение к срезу круговой диаграммы?

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

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

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

Спасибо


person Tyagi    schedule 02.08.2011    source источник


Ответы (3)


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

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

person Bill Dudney    schedule 02.08.2011

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

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

person Andos    schedule 07.05.2012

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

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

person Kemal Taskin    schedule 12.12.2012