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