如何去掉Core-Plot图形周围的边框?

24

我正在尝试在iPhone上去掉一个核心绘图图表周围的边框,但似乎很难在我的脑海中想象简单的事情。

请给予指导!


对不起,如果这是一个显而易见的问题,但什么是核心绘图图表? - Oscar Gomez
Core Plot是一个用于在Mac和iPhone上绘图的库:http://code.google.com/p/core-plot/ - Grouchal
7个回答

78
您应该能够将图形的 plotArea 上的 borderLineStyle 设置为 nil,以去除边框:
graph.plotAreaFrame.borderLineStyle = nil;    // don't draw a border

您也可以创建自己的主题,使用框架中的主题作为示例,并在其中不设置borderLineStyle。


27
如果您正在使用内置主题,请确保在调用applyTheme之后设置borderLineStyle,否则它将被覆盖。 - Ben Clayton
2
这个注释非常有用!谢谢!我有一些测试代码,刚才通过一个按钮切换了主题,结果所有东西都被覆盖了! - Git.Coach
只是为了补充Brad的回答。请在应用主题后添加答案中提到的那一行。如果您在此之前添加它,则不起作用。 - Parth Bhatt

8

对我都没有用,这个方法解决了问题:

graph.paddingLeft = 0;
graph.paddingRight = 0;
graph.paddingTop = 0;
graph.paddingBottom = 0;
graph.plotAreaFrame.borderWidth = 0;
graph.plotAreaFrame.cornerRadius = 0;

4

好的,我找到了如何做到这一点 - 实际上非常简单!

CPLineStyle *borderLineStyle = [CPLineStyle lineStyle];
borderLineStyle.lineColor = [CPColor whiteColor];
borderLineStyle.lineWidth = 1.0;

graph.plotArea.borderLineStyle = borderLineStyle;

其中“graph”是您的图形对象 - 我之所以首先有一个边框,是因为我使用了CPPlainWhiteTheme主题。

希望这能帮助其他人 - 是否有更好的方法?


1
如果像我一样,你想要的不仅是去掉边框线,而是制作一个占据整个托管视图的绘图,那么这篇回答来自Thomas Johannesmeyer就能指引你走上正确的轨道。
这是我所做的:
CPTGraphHostingView* hostingView = [[CPTGraphHostingView alloc] initWithFrame: frame];
CGRect bounds = hostingView.bounds;

CPTGraph *graph = [[CPTXYGraph alloc] initWithFrame:bounds];
hostingView.hostedGraph     = graph;

graph.paddingTop    = CPTFloat(0.0);
graph.paddingRight  = CPTFloat(0.0);
graph.paddingBottom = CPTFloat(0.0);
graph.paddingLeft   = CPTFloat(0.0);

graph.plotAreaFrame.paddingTop    = CPTFloat(0.0);
graph.plotAreaFrame.paddingRight  = CPTFloat(0.0);
graph.plotAreaFrame.paddingBottom = CPTFloat(0.0);
graph.plotAreaFrame.paddingLeft   = CPTFloat(0.0);
graph.plotAreaFrame.masksToBorder = NO;

CPTXYAxisSet *axisSet = (CPTXYAxisSet *)graph.axisSet;
CPTXYAxis *x          = axisSet.xAxis;
x.labelingPolicy      = CPTAxisLabelingPolicyNone;
x.title = nil;
CPTXYAxis *y          = axisSet.yAxis;
y.labelingPolicy      = CPTAxisLabelingPolicyNone;
y.title = nil;

1
在CorePlot 1.0中,CPTGraph的结构略有改变。假设graphGPTGraph类型或CPTGraph的子类,则用于移除图形边框线的代码如下:
graph.plotAreaFrame.borderLineStyle = nil;

1
应用主题后,使用 borderLineStyle = nil 的正确方式为:
CPTGraph *graph = [[CPTXYGraph alloc] initWithFrame:hostView.bounds];

// Set padding for plot area
[graph applyTheme:[CPTTheme themeNamed:kCPTPlainWhiteTheme]];
graph.plotAreaFrame.borderLineStyle = nil;

1

您可以将任何线条样式设置为nil。这将导致该线条不被绘制出来。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接