我怎样才能访问图层以便翻转它?

How can I access the layer so I can flip it?

我在我的 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.transform 替换 theLegend.sublayerTransform ,但也没有做任何事情。如何访问图例图层以便翻转它?

更新

UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:2 inSection:0]];
[cell.layer addSublayer:graph.legend];

对您问题的简短回答是,您需要翻转包含图例图层的视图图层。

[[viewWithLegendSublayer layer] setTransform:CATransform3DMakeScale(1.0f, -1.0f, 1.0f)];

这样可以解决问题,但如果您向该视图添加任何其他子视图,它们将颠倒过来。

N.B.: 可能有更好的方法来解决这个问题,这些方法在 API 的预期设计中起作用(例如,CPTLegend 期望成为一个子层CPTGraph).

这是我们在聊天中讨论的方法。既然您想将图例放入 UITableView,为什么不完全跳过 CPTLegend,并使用多个 table 视图单元格作为图例项?您可能必须设置自己的颜色,但完成后,您只需创建标准 table 视图单元格,并使用图例中的标题设置其文本。然后创建一个小正方形 UIView(您可以将其 layer 的角圆化以获得视觉吸引力),将其背景颜色设置为匹配,并将其设置为单元格的 accessoryView(或执行UIImageView 和单元格的 imageView).

相同