限制视图移动到圆形区域

时间:2013-12-20 13:39:04

标签: ios color-picker touchesmoved

我想设置自定义颜色选择器。我已经设置了一个带有选择器错误的圆形图像。但是,我希望错误只能在图像上移动(图像外没有颜色),或者另一种方式,只在图像大小的圆圈中移动。

如何限制错误位置?

enter image description here

1 个答案:

答案 0 :(得分:1)

我知道您希望将选择器保留在圆圈图像中。 要做到这一点,只需抓住圆形图像的中心点(p1)和拾取器的currnet位置的中心点(p2)。计算两者之间的距离:

 float distance = sqrt((p2.x-p1.x)*(p2.x-p1.x)+(p2.y-p1.y)*(p2.y-p1.y));

如果距离超过圆半径停止移动选择器:

if(distance <= radius) 
        return YES;// Let the picker move, it's inside the circle image
else
    return NO; // Picker outside the circle image

希望这就是你的意思。