Отображение максимальной оси Y с CorePlot CPTAxisLabelingPolicyАвтоматическая настройка - PullRequest
0 голосов
/ 18 сентября 2018

Я хочу построить фигуру с меткой максимального значения оси y, отображаемой на галочке метки с настройкой CPTAxisLabelingPolicyAutomatic. Однако я не нашел ни одной публичной функции, позволяющей мне это делать.

После проверки исходного кода CorePlot (метод autoGenerateMajorTickLocations) я думаю, что я могу сделать некоторые обходные пути, используя CPTDecimalDivide и CPTNiceNum. Я реализовал свой код, увеличив свой plotRange по оси Y с вычисленным интервалом «хорошего числа»

var majorInterval = CPTDecimalDivide( Decimal(yAxisLength), 
CPTDecimalFromUnsignedInteger(5-1))
majorInterval = CPTNiceNum(majorInterval)

let interval = Int(truncating: majorInterval as NSNumber)
let number = Int(yAxisLength/interval) + 1
yAxisLength = Int(Double(number * interval))

Однако CPTNiceNum не является публичным методом, поэтому мне интересно, есть ли лучший способ сделать это?

1 Ответ

0 голосов
/ 19 сентября 2018

Назовите -layoutIfNeeded на графике, чтобы убедиться, что метки оси обновлены, а затем прочитайте majorTickLocations, установленный по оси Y.Вы можете легко найти максимальное значение местоположения в наборе.

...