【问题标题】:iOS SDK- How to detect touch on Pie Chart slice?iOS SDK-如何检测饼图切片上的触摸?
【发布时间】:2011-08-02 08:42:59
【问题描述】:

我开发了一个动画饼图,当用户单击饼图切片时,它会从图表中显示出来。目前,我在不同的 CGLayer 上绘制饼图的每一片。当用户点击切片时,我选择该特定像素的颜色并将其与拉出相应图层的 RGB 代码(硬编码)匹配。

我不想使用任何第三方图表库,例如 core plot。

有没有办法让每一层都成为一个单独的图形实体,以便可以检测到对该对象的触摸?

谢谢

【问题讨论】:

    标签: ios core-animation core-graphics pie-chart


    【解决方案1】:

    不能只用触摸的X,Y坐标来计算到饼图中心的角度和距离吗?

    如果距离小于半径,则使用角度来确定点击了哪个图表。

    【讨论】:

      【解决方案2】:

      我使用CAShapeLayer 来表示单个饼图。 CAShapeLayer 实例有一个 path 属性,您可以使用它来测试一个点是否在该路径内。

      只需检测父 UIView 上的触摸点,然后遍历所有饼图切片并使用 CGPathContainsPoint 函数测试该点是否在该饼图切片内。

      【讨论】:

        【解决方案3】:

        如果您使用的是 CG,那么您可以测试一个点是否在路径内。

        结帐CGPathContainsPointhere

        【讨论】:

          猜你喜欢
          • 2013-04-13
          • 1970-01-01
          • 1970-01-01
          • 2015-11-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-10-19
          • 2011-06-11
          相关资源
          最近更新 更多