Hi Max,
In our 2.8.0 release of charts we made a rather substantial change to the crosshair's drawing in order to drop memory usage from 25MB (on average) to around 5MB. The issue was that we were using CoreGraphics and a large bitmap, which has now been substituted internally for UIBezierPaths instead. There were several other changes which mean that drawCrosshairLines is now no-longer called in a 'drawRect' context.
Something like the following may resolve your issue to allow you to draw on the crosshair (in a more efficient manner too):
// a property (or alternatively, ivar)
@property (nonatomic, retain) CAShapeLayer *crosshairLinesLayer;
// somewhere in initialisation:
self.crosshairLinesLayer = [CAShapeLayer layer];
[self.layer insertSublayer:self.crosshairLinesLayer atIndex:0];
// in your drawing code:
UIBezierPath *linePath = [UIBezierPath bezierPath];
[linePath moveToPoint:CGPointMake(crosshairCentrePoint.x, crosshairCentrePoint.y - 2.0f)];
[linePath addLineToPoint:CGPointMake(crosshairCentrePoint.x, 0.0f)];
// Set the CAShapeLayer's path and copy crosshair line attributes from style object
self.crosshairLinesLayer.path = linePath;
self.crosshairLinesLayer.strokeColor = [super.style.lineColor CGColor];
self.crosshairLinesLayer.lineWidth = [super.style.lineWidth floatValue];
Hope this helps!