我正在使用 CorePlot 1.0,并希望在条形图(这是一个子类XYGraph)中添加图例。我在viewController中有数据源和图例标题方法,它实例化条形图并将自己设置为其委托。
我花了不少时间使用不同的委托和图例设置,但找不到我的错误。你能给出我可能出错的地方的任何提示吗?
我已经将XYGraph子类化为生成条形图,如下所示:
.h
@interface BarLineChart : CPTXYGraph
@property (strong, nonatomic) id <CPTPlotDataSource, CPTBarPlotDataSource, CPTBarPlotDelegate, CPTPlotSpaceDelegate> delegate;
@end
在我的实施 .m 中,我设置了如下图例:
// Add legend
CPTLegend *legend = [CPTLegend legendWithGraph:self];
legend.fill = [CPTFill fillWithColor:[CPTColor colorWithGenericGray:0.15]];
legend.borderLineStyle = axisLineStyle;
legend.cornerRadius = 10.0;
legend.swatchSize = CGSizeMake(16.0, 16.0);
CPTMutableTextStyle *legendTextStyle = [CPTMutableTextStyle textStyle];
legendTextStyle.color = [CPTColor whiteColor];
legendTextStyle.fontSize = 10.0;
legend.textStyle = legendTextStyle;
legend.rowMargin = 1.0;
legend.numberOfRows = 3;
legend.paddingLeft = 10.0;
legend.paddingTop = 10.0;
legend.paddingRight = 10.0;
legend.paddingBottom = 10.0;
legend.delegate = self.delegate;
self.legend = legend;
self.legendAnchor = CPTRectAnchorTop;
self.defaultPlotSpace.delegate = self.delegate;
我将数据源方法保存在一个单独的viewController中,我为其设置了委托(存储在self.delegate中)。 这是我的viewController的界面:
`@interface FinstatViewController : CompanyViewController <UITableViewDelegate, UITableViewDataSource, UISplitViewControllerDelegate, UIPopoverControllerDelegate, CompanyPresenter, ChartSelectionDelegate, CPTPlotDataSource, CPTBarPlotDataSource, CPTBarPlotDelegate, CPTPlotSpaceDelegate, CPTLegendDelegate, CPTScatterPlotDataSource, CPTScatterPlotDelegate>`
我获取绘图数据的数据源方法工作正常,但图例标题方法
-(NSString *)legendTitleForBarPlot:(CPTBarPlot *)barPlot recordIndex:(NSUInteger)index
永远不会打电话给。
答案 0 :(得分:1)
图例标题方法是数据源的一部分,而不是委托。如果您的数据源和委托在不同的类中,请确保标题方法以正确的方式实现。