Я использую третье лицо для выбора цвета (ISColorWheel-https://github.com/justinmeiners/ios-color-wheel), чтобы выбрать цвет и отобразить его на экране. Мне нужно ограничить выбор синего цвета, если определенная кнопка включена.Ограничение касания на ColorPicker UIView - iOS
Когда я вижу класс выбора цвета библиотеки, они внедрили следующий код, чтобы ограничить вид Ручки для перемещения по палитре цветов.
- (void)setTouchPoint:(CGPoint)point
{
CGFloat width = self.bounds.size.width;
CGFloat height = self.bounds.size.height;
CGPoint center = CGPointMake(width/2.0, height/2.0);
// Check if the touch is outside the wheel
if (ISColorWheel_PointDistance(center, point) < _radius)
{
//NSLog(@"Distance is %f and Radius is %f",ISColorWheel_PointDistance(center, point),_radius);
_touchPoint = point;
}
else
{
// If so we need to create a drection vector and calculate the constrained point
CGPoint vec = CGPointMake(point.x - center.x, point.y - center.y);
float extents = sqrtf((vec.x * vec.x) + (vec.y * vec.y));
vec.x /= extents;
vec.y /= extents;
_touchPoint = CGPointMake(center.x + vec.x * _radius, center.y + vec.y * _radius);
NSLog(@"Touch Point is %f %f",_touchPoint.x,_touchPoint.y);
}
[self updateKnob];
}
Приведенный выше код ограничивает возможность перемещения ручки в сторону от круга. В моем случае я должен запретить пользователю не выбирать синий цвет ColorPicker. Как я могу его реализовать. Как найти траекторию синего цвета.