我在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中取得任何成功?
答案 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"
}