【发布时间】:2018-01-23 16:23:21
【问题描述】:
我有一个圆形滑块,其中绘制了一个贝塞尔弧,一个弧在滑块的起点和终点有两个手柄,弧是在圆形滑块中绘制的。
借助开始和结束句柄,我可以沿着圆形滑块绘制贝塞尔曲线。
我想在仅从手柄向内拖动 45 或向外拖动 45 时更改弧的颜色,并且在圆形滑块中拖动时不应更改弧的颜色。
注意-在内部和外部拖动时,它不应改变其他滑块弧线的颜色。
颜色应该只在被内部和外部拖动时才改变,而不是在圆形拖动时。
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
[super touchesMoved:touches withEvent:event];
_dragging = YES;
if (!self.isDragging)
{
return;
}
if ([self.delegate respondsToSelector:@selector(sliderDraggin:)])
{
[self.delegate sliderDraggin:self];
}
UITouch *touch = [touches anyObject];
//UITouch *touch = [touches anyObject];
NSUInteger nearestHandleIndex = [self indexOfNearesPointForTouch:touch];
_nearesHandle = (nearestHandleIndex != NSNotFound) ? _handles[@(nearestHandleIndex)] : nil;
CGPoint location = [touch locationInView:self];
CGFloat distance = [_math distanceBetweenPoint:_centerPoint andPoint:location];
CGFloat inOff = _radius - _sliderWidth - _offset.inside;
CGFloat outOff = _radius + _offset.outside;
if (distance < inOff || distance > outOff)
{
if (self.isNeedToRevoke)
{
_dragging = NO;
return;
}
}
dispatch_async(dispatch_get_main_queue(), ^{
int a = AngleFromNorth(_centerPoint, location, EVA_FLIPPED);
[self moveView:_nearesHandle toAngle:a];
[self drawArc];
});
[self informDelegateAboutHandles];
}
【问题讨论】:
标签: ios objective-c uibezierpath