如何从核心绘图axisLabels数组中获取xAxis标签文本值?

时间:2016-07-07 06:22:23

标签: ios swift core-plot

其实我想得到我的xAxis标签的字符串值。怎么做到的?我有一系列xAxis标签:

    let xAxis = axisSet.xAxis as CPTXYAxis!
    let label = xAxis.axisLabels?

所以这会返回我在屏幕上可见的所有标签值。作为reference to this question,我需要计算用于映射我的值的点,以在xAxis上绘制。但是在我滚动图表后如何再次获得第一个标签值?我想要在地图上显示的字符串值,例如:“17:04:05”。如何从数组中获取该值?因为这个axisLabels数组返回的值不是短路的,我想要第一个在我的图表上可见的标签值。数组输出如下所示:

Optional("[<<CPTAxisLabel: 0x7fe5e858b910> {<<<CPTTextLayer: 0x7fe5e84501d0> bounds: {{0, 0}, {58, 21}}> \"11:47:46\">}>, <<CPTAxisLabel: 0x7fe5e858b5f0> {<<<CPTTextLayer: 0x7fe5e858b7f0> bounds: {{0, 0}, {58, 21}}> \"11:41:16\">}>, <<CPTAxisLabel: 0x7fe5e85a1070> {<<<CPTTextLayer: 0x7fe5e8586cd0> bounds: {{0, 0}, {58, 21}}> \"11:46:16\">}>, <<CPTAxisLabel: 0x7fe5e86adf70> {<<<CPTTextLayer: 0x7fe5e86b6b90> bounds: {{0, 0}, {58, 21}}> \"11:44:46\">}>, <<CPTAxisLabel: 0x7fe5e8591660> {<<<CPTTextLayer: 0x7fe5e85918a0> bounds: {{0, 0}, {58, 21}}> \"11:43:16\">}>, <<CPTAxisLabel: 0x7fe5e853fde0> {<<<CPTTextLayer: 0x7fe5e8511530> bounds: {{0, 0}, {58, 21}}> \"11:48:16\">}>, <<CPTAxisLabel: 0x7fe5e858bab0> {<<<CPTTextLayer: 0x7fe5e85915a0> bounds: {{0, 0}, {58, 21}}> \"11:41:46\">}>, <<CPTAxisLabel: 0x7fe5e87b2e00> {<<<CPTTextLayer: 0x7fe5e876f990> bounds: {{0, 0}, {58, 21}}> \"11:46:46\">}>, <<CPTAxisLabel: 0x7fe5e857dff0> {<<<CPTTextLayer: 0x7fe5e8587690> bounds: {{0, 0}, {58, 21}}> \"11:45:16\">}>, <<CPTAxisLabel: 0x7fe5e8588f80> {<<<CPTTextLayer: 0x7fe5e858acf0> bounds: {{0, 0}, {58, 21}}> \"11:43:46\">}>, <<CPTAxisLabel: 0x7fe5e86830c0> {<<<CPTTextLayer: 0x7fe5e8684e30> bounds: {{0, 0}, {58, 21}}> \"11:48:46\">}>, <<CPTAxisLabel: 0x7fe5e8588ce0> {<<<CPTTextLayer: 0x7fe5e8588ec0> bounds: {{0, 0}, {58, 21}}> \"11:42:16\">}>, <<CPTAxisLabel: 0x7fe5e85a1290> {<<<CPTTextLayer: 0x7fe5e8584c80> bounds: {{0, 0}, {58, 21}}> \"11:47:16\">}>, <<CPTAxisLabel: 0x7fe5e845df20> {<<<CPTTextLayer: 0x7fe5e845e040> bounds: {{0, 0}, {58, 21}}> \"11:45:46\">}>, <<CPTAxisLabel: 0x7fe5e8590a60> {<<<CPTTextLayer: 0x7fe5e8590ca0> bounds: {{0, 0}, {58, 21}}> \"11:44:16\">}>, <<CPTAxisLabel: 0x7fe5e8766660> {<<<CPTTextLayer: 0x7fe5e8748c90> bounds: {{0, 0}, {58, 21}}> \"11:49:16\">}>, <<CPTAxisLabel: 0x7fe5e858b8b0> {<<<CPTTextLayer: 0x7fe5e85909a0> bounds: {{0, 0}, {58, 21}}> \"11:42:46\">}>]")

正如您所看到的那样,它不是按排序顺序排列的,或者不按顺序显示在图表上,我只想要在图表上显示的第一个字符串。帮我解决这个问题。

1 个答案:

答案 0 :(得分:0)

循环通过轴标签集。对于每一个,contentLayerCPTTextLayer的实例。读取text属性,并使用标签格式化程序将时间字符串转换为数据值。找到数据集合中的最小值。