如何像目标一样在圆圈内绘制多个圆圈并获得特定圆圈的触摸事件?

时间:2016-01-15 07:31:15

标签: ios objective-c iphone swift

我想像这样绘制目标视图 - enter image description here

获取特定圈子的触摸事件。 例如,如果用户在圆圈7之间触摸,则将圆圈的黑色填充到圆圈7。

目前我有两种方法可以实现此功能: 1)取10个UIImageView并相互叠加,触摸图像视图,根据条件改变图像视图的颜色。

2)取UIView并绘制20色渐变(10为黑色边框线,10为白色空间)并保存每个渐变的帧。然后获取用户的触摸区域,然后根据该颜色改变颜色。

我正在寻找更好的解决方案。

1 个答案:

答案 0 :(得分:1)

为什么不拥有单个图像,并根据触摸点计算半径 - 所有您需要知道的是中心位置。

而不是半径,你真正需要的是你的波段从0到11的索引 - 如果它们的厚度相等,你可以在一次计算中做到这一点 - 取整数部分(11 * radius / radiusFull)< / p>

如果靶心尺寸不同,您可能需要添加更多代码。

无论哪种方式,您都应该能够使用单个图像(即动生成或简单加载)以及一些简单的数学运算来完成所有操作。