ios - 核心剧情: Are "setLabelingPolicy:CPTAxisLabelingPolicyNone" and "setMajorGridLineStyle:majorGridLineStyle" Mutually exclusive?

标签 ios core-plot

我正在尝试在 Y 轴上绘制自定义标签和网格线, 如果我设置标签策略 CPTAxisLabelingPolicyNone,并将自定义标签添加到 Y 轴,我可以在 Y 轴上绘制所需的标签。

[yAxis setLabelingPolicy:CPTAxisLabelingPolicyNone];

但是我无法让网格线工作。

[yAxis setMajorGridLineStyle:majorGridLineStyle];

如果我删除 Label Policy None,那么我可以获得网格线。

想知道解决方案是什么?

设置Y轴标签的代码:

NSMutableArray *yLabels = [NSMutableArray arrayWithObjects:@"None", @"Awake", @"Light",@"Middle",@"Deep", nil];
NSMutableArray *customLabelsY = [NSMutableArray arrayWithCapacity:[yLabels count]];
for (int loc=1; loc <= 4; loc++)
{
    CPTAxisLabel *newLabelY = [[CPTAxisLabel alloc] initWithText: [yLabels objectAtIndex:loc] textStyle:textStyle];
    newLabelY.tickLocation = [[NSDecimalNumber numberWithInt:loc] decimalValue];
    newLabelY.offset = yAxis.labelOffset + yAxis.majorTickLength;
    [customLabelsY addObject:newLabelY];
}
[yAxis setAxisLabels:[NSSet setWithArray:customLabelsY]];

最佳答案

使用 CPTAxisLabelingPolicyNone,如果您需要刻度线和/或网格线,您的应用必须提供刻度位置(主要和/或次要)。它们独立于标签,因此您可以标记没有刻度线的位置和/或在创建标签时跳过一些刻度线位置。


编辑:

在创建标签时跟踪位置并在完成后设置 majorTickLocations

NSMutableSet *locations = [NSMutableSet set];

for (int loc=1; loc <= 4; loc++) {
    // create labels

    [locations addObject:@(loc)];
}

yAxis.majorTickLocations = locations;

关于ios - 核心剧情: Are "setLabelingPolicy:CPTAxisLabelingPolicyNone" and "setMajorGridLineStyle:majorGridLineStyle" Mutually exclusive?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26419074/

相关文章:

ios - 有没有好的 iPhone 图表库?

ios - 核心图-iOS触摸事件很难在图形上选择点

Core-plot:如何设置 x 轴的起始值?

ios - CorePlot 中散点图的非缩放/绝对梯度?

ios - 试图创建一个彩色圆圈 UIImage,但它总是以方形结束。为什么?

objective-c - 触摸绘制和删除线条

ios - SKTexture 获取图像名称

ios - 为什么在 Apple 的类引用中没有将处理程序列为属性?

ios - Core Plot - iOS - 突出显示 2 条绘图线之间的区域

ios - Uitableviewcell 具有自定义 View ,在应用程序运行时无法正确调整大小(下图)