我在我的xcode项目中实现了corePlot。我试图翻转图表的legend
。
以下是代码:
CPTGraph *graph = self.hostView.hostedGraph;
CPTLegend *theLegend = [CPTLegend legendWithGraph:graph];
graph.legend = theLegend;
这就是我的尝试:
theLegend.sublayerTransform = CATransform3DMakeScale( CPTFloat(1.0), CPTFloat(-1.0), CPTFloat(1.0) );
那没有做任何事情。所以我尝试将theLegend.sublayerTransform
替换为theLegend.transform
,但也没有做任何事情。如何访问图例图层以便翻转它?
更新
UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:2 inSection:0]];
[cell.layer addSublayer:graph.legend];
答案 0 :(得分:1)
您问题的简短回答是,您需要翻转包含图例图层的视图图层。
[[viewWithLegendSublayer layer] setTransform:CATransform3DMakeScale(1.0f, -1.0f, 1.0f)];
这样做可以解决问题,但如果您将任何其他子视图添加到该视图中,它们就会颠倒过来。
N.B。:可能有更好的方法来解决此问题,该问题在API的预期设计范围内有效(例如,CPTLegend
期望成为CPTGraph
的子图层。
这是我们在聊天中讨论的方法。由于您希望将图例放入UITableView
,为什么不完全跳过CPTLegend
,并使用多个表格视图单元作为图例项目?您可能需要设置自己的颜色,但一旦完成,您就可以创建标准表格视图单元格,并使用图例中的标题设置文本。然后创建一个小方块UIView
(您可以围绕其layer
个角落以获得视觉吸引力),设置其背景颜色以匹配,并将其设置为您的单元格{{{ 1}}(或对accessoryView
和单元格UIImageView
执行相同操作。