我开发了一个动画饼图,当用户点击饼图切片时,它就会出现在图表中。目前,我正在不同的CGLayer上绘制Pie的每个切片。当用户点击切片时,我选择该特定像素的颜色,并将其与RGB代码(硬编码)匹配,后者拉出相应的图层。
我不想使用任何第三方图表库,如核心图。
有没有办法让每个图层成为一个单独的图形实体,以便可以检测到该对象的触摸?
谢谢
答案 0 :(得分:3)
难道你不能只使用触摸的X,Y坐标计算饼图中心的角度以及距离吗?
如果距离小于半径,则使用角度确定点击的图表。
答案 1 :(得分:1)
我使用CAShapeLayer
来表示单个饼图。 CAShapeLayer
个实例具有路径属性,您可以使用该属性来测试某个点是否在该路径中。
只需检测父UIView上的触摸点,然后迭代所有饼图切片,并使用CGPathContainsPoint
函数测试该点是否在该饼图片内。
答案 2 :(得分:0)
如果您正在使用CG,那么您可以测试一个点是否在路径中。
结帐CGPathContainsPoint
here。