我想用CPTAxisLabelingPolicyAutomatic设置绘制标签上显示最大y轴值标签的图形。但是我没有发现任何公共功能允许我这样做。
在检查CorePlot源代码(autoGenerateMajorTickLocations方法)之后,我想我可以通过使用CPTDecimalDivide和CPTNiceNum来做一些解决方法。我通过在Y轴上增加plotRange并计算出“漂亮的数字”间隔来实现我的代码
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不是公共方法,所以我想知道有没有更好的方法呢?
在图表上调用-layoutIfNeeded
以确保更新轴标签,然后从y轴读取majorTickLocations
集。您可以轻松找到集合中的最大位置值。