gpt4 book ai didi

ios - 了解 numberForPlot : and numberOfRecordsForPlot: Core Plot

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:46:33 24 4
gpt4 key购买 nike

我正在实现条形图,但在理解 numberForPlot:field:recordIndex:numberOfRecordsForPlot 两种方法时遇到问题

我现在有

-(NSUInteger)numberOfRecordsForPlot:(CPTPlot *)plot
{
return 4;
}

-(NSNumber *)numberForPlot:(CPTPlot *)plot field:(NSUInteger)fieldEnum recordIndex:(NSUInteger)idx {
switch (idx) {
case 0:
return @1;
break;
case 1:
return @2;
break;
case 2:
return @3;
break;
case 3:
return @4;
break;
default:
return @0;
break;
}
}

这会按预期生成图表。当我将 @4 更改为 @5 时,它会显示最后一个栏,旁边有一个空白栏。如果我根据 numberOfRecordsForPlot 绘制 4 个条目中的每一个的 x 和 y 位置,这是有道理的,但是当我在 numberForPlot 中记录信息时,它只有 0 & 1 为 fieldEnum。

我看过 doco 和示例,但对我来说并没有更清楚。有人可以解释一下吗?

最佳答案

主要问题是该委托(delegate)方法的 fieldEnum 没有按您的想法行事。它将具有 CPTBarPlotFieldBarLocation(“x”轴位置)或 CPTBarPlotFieldBarTip(条形高度)的值,因此这些应该是 switch 语句中使用的情况。 idx 指的是特定的柱。

在这里,我将条形的高度放在名为 plotData 的数据源对象的属性中。

self.plotData = @[@(1), @(2), @(3), @(4)];

然后你可以像这样实现委托(delegate)方法,

-(NSNumber*) numberForPlot:(CPTPlot *)plot field:(NSUInteger)fieldEnum recordIndex:(NSUInteger)idx {

switch ( fieldEnum ) {
case CPTBarPlotFieldBarLocation:
return @(idx);
break;

case CPTBarPlotFieldBarTip:
return [plotData objectAtIndex:idx];
break;

default:
break;
}

return nil;
}

关于ios - 了解 numberForPlot : and numberOfRecordsForPlot: Core Plot,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22169195/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com