2010-02-03 133 views
24

我試圖去除iPhone上核心圖上邊界的邊界 - 但似乎在思考什麼應該是簡單的問題上掙扎。如何去除核心圖上邊界的邊界

請指點!

+0

我很抱歉,如果這是一個明顯的問題,但什麼是核心繪圖表? – 2010-02-03 19:09:57

+0

Core Plot是一個用於在Mac和iPhone上繪圖的庫: http://code.google.com/p/core-plot/ – Grouchal 2010-02-03 21:31:28

+1

這看起來非常有用。謝謝。 – 2010-02-03 21:38:09

回答

78

你應該能夠零出在圖表上的plotArea的borderLineStyle刪除邊框:

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

你也可以創建自己的主題,在框架的例子使用的手機,根本沒有設置在那邊的borderLineStyle。

+27

如果您使用的是內置主題,請確保在applyTheme調用後設置borderLineStyle,否則它將被覆蓋。 – 2013-02-20 10:45:28

+2

這個評論是金的!謝謝!我有一些測試代碼,只是通過按鈕切換主題。所以一切都被覆蓋! – 2013-02-21 02:31:48

+0

只是添加到布拉德的答案。請在應用主題後添加答案中提到的行。如果你在之前添加它,那麼它將無法工作。 – 2014-11-25 14:22:25

4

好的,我發現怎麼做 - 真的很簡單!

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

graph.plotArea.borderLineStyle = borderLineStyle; 

其中圖是你的圖形對象 - 我曾在首位邊框的原因是因爲我用CPPlainWhiteTheme。

希望這可以幫助別人 - 有沒有更好的方法?

1

您可以將任何線條樣式設置爲nil。這將導致線條根本不被繪製。

1

在CorePlot 1.0中,CPTGraph的結構略有變化。去除圖形的邊界線,假設是GPTGraph型或CPTGraph一個子類,代碼

graph.plotAreaFrame.borderLineStyle = nil; 
8

無問題的答案爲我工作。該做的工作:

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

applyTheme與borderLineStyle =零正確的方法後:

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

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

如果像我一樣,你正在尋找不只是刪除邊框線,但做圖這佔據了整個託管視圖,來自Thomas Johannesmeyeranswer讓我走上了正確的軌道。

這裏就是我所做的:

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;