Combining horizontal and vertical sliders into one
Once your control is active, just keep tracking until the touch ends, even if the touch moves outside of the view:

- (BOOL)continueTrackingWithTouch:(UITouch *)touch withEvent:(UIEvent *)event {
    CGPoint touchPoint = [touch locationInView:self];

    CGFloat hLimitLeft = horizontalSliderFrame.origin.x + .5* ksliderThickness;
    CGFloat hLimitRight = hLimitLeft + horizontalSliderFrame.size.width - ksliderThickness;
    CGFloat vLimitTop = verticalSliderFrame.origin.y + .5* ksliderThickness;
    CGFloat vLimitBottom = vLimitTop +  verticalSliderFrame.size.height - ksliderThickness;

    self.thumb.center.x = MAX(hLimitLeft, MIN(hLimitRight, touchPoint.x));
    self.thumb.center.y = MAX(vLimitTop, MIN(vLimitBottom, touchPoint.y));

    [self setNeedsDisplay];
    [self updateValues];

    return YES;
}


Note also that I changed the calculation of hLimitLeft and vLimitTop. I think this approach is clearer (in particular I missed the different signs on the .5 * ksliderThickness term the first couple of times through).

It's been a while since I've done iOS development, so there might be some minor mistakes, but this should get you going in the right direction.