如何在Swift中创建带有核心图的图例

时间:2014-12-08 02:09:16

标签: ios swift core-plot legend

我在Swift中使用Core Plot创建了一个CPTXYGraph。图表工作得很好。现在我想添加一个传奇。我查看了几个示例,并提出以下内容来创建图例:

    var theLegend=CPTLegend(graph: graph)
    var legendFill=CPTFill(color: CPTColor.blueColor())
    theLegend.fill = legendFill
    var legendLineStyle = CPTMutableLineStyle()
    legendLineStyle.lineColor = CPTColor.whiteColor()
    theLegend.borderLineStyle = legendLineStyle
    theLegend.cornerRadius = 2.0
    theLegend.swatchSize = CGSizeMake(15.0, 15.0)
    graph.legend = theLegend
    graph.legendAnchor = CPTRectAnchor.TopLeft
    graph.legendDisplacement = CGPointMake(100.0, -100.0)

当我运行时,我得到一个带有略圆角的蓝色正方形,看起来大约是10 X 10像素。 我尝试设置框架只是为了看它是否会产生影响:

    theLegend.frame = CGRectMake(0, 0, 200, 200)

这没有改变任何事情。

有没有人在Swift中取得任何成功?

3 个答案:

答案 0 :(得分:0)

在使用该图例初始值设定项之前,请确保所有绘图都已在图表中。您还可以使用一系列单个图来初始化图例。

答案 1 :(得分:0)

我在这里找到了一个解决方案:Problems with legend in Core-Plot (pieChart)

您需要添加此方法

func legendTitleForPieChart(pieChart:CPTPieChart,recordIndex index:Int) -> NSString{
    return "the title"
}

答案 2 :(得分:0)

你需要3件事:

这位代表:

CPTPieChartDelegate

您需要在饼图上将委托设置为self:

pieChart.delegate = self

并提供图例:

func legendTitleForPieChart(pieChart: CPTPieChart!, recordIndex idx: UInt) -> String! {
    return "titulo"
}