我想设置自定义颜色选择器。我已经设置了一个带有选择器错误的圆形图像。但是,我希望错误只能在图像上移动(图像外没有颜色),或者另一种方式,只在图像大小的圆圈中移动。
如何限制错误位置?
答案 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
希望这就是你的意思。