Как убрать границу вокруг графика основного графика - PullRequest
24 голосов
/ 03 февраля 2010

Я пытаюсь убрать границу вокруг основного графика на iPhone - но мне кажется, что я думаю о том, что должно быть простым.

Указатели, пожалуйста!

Ответы [ 7 ]

78 голосов
/ 04 февраля 2010

Вы должны иметь возможность обнулять borderLineStyle на графике plotArea, чтобы удалить границу:

graph.plotAreaFrame.borderLineStyle = nil;    // don't draw a border

Вы также можете создать свою собственную тему, используя в качестве примеров те, что в фреймворке, и просто не устанавливать в ней borderLineStyle.

8 голосов
/ 21 февраля 2013

Ни один из ответов не сработал для меня. Это сделало работу:

graph.paddingLeft = 0;
graph.paddingRight = 0;
graph.paddingTop = 0;
graph.paddingBottom = 0;
graph.plotAreaFrame.borderWidth = 0;
graph.plotAreaFrame.cornerRadius = 0;
4 голосов
/ 04 февраля 2010

ОК, я узнал, как это сделать - действительно просто!

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

graph.plotArea.borderLineStyle = borderLineStyle;

где graph - это объект вашего графа - причина, по которой я изначально имел границу, была в том, что я использовал CPPlainWhiteTheme.

Надеюсь, это поможет другим - есть ли лучший способ?

1 голос
/ 12 мая 2015

Если, как и я, вы хотите не просто убрать границу, а построить сюжет, который будет охватывать весь вид хостинга, ответ из 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 голос
/ 02 сентября 2014

Правильный путь с borderLineStyle = nil после applyTheme:

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

// Set padding for plot area
[graph applyTheme:[CPTTheme themeNamed:kCPTPlainWhiteTheme]];
graph.plotAreaFrame.borderLineStyle = nil;
1 голос
/ 28 июля 2012

В CorePlot 1.0 структура CPTGraph изменилась незначительно.Код для удаления линии границы графа, предполагая, что graph имеет тип GPTGraph или подкласс CPTGraph, равен

graph.plotAreaFrame.borderLineStyle = nil;
1 голос
/ 04 февраля 2010

Вы можете установить любой стиль линии на nil.Это приведет к тому, что линия вообще не будет рисоваться.

...