2012-01-12 143 views
0

我正在處理在應用程序中渲染圖形。處理數據(繪製點和點之間的線條)被覆蓋,我感興趣的是將這些數據映射到圖形的頂部。首先,讓我告訴你我想做什麼(見下文),解決方案是圖基有一個漸變。iOS圖形渲染

我認爲解決的辦法是取一個梯度的塊圖像,只是在代碼(以某種方式)削減邊緣。

是否有一個現有的算法(Objective-C)會這樣做?

感謝

let me show you what I want to do

+0

您可以參考:http://stackoverflow.com/questions/769749/is-there-a-good-charting-library-for-iphone – samfisher 2012-01-12 18:39:54

回答

0

我的解決辦法是將圖像映射到與使用bezierPath的路徑。請參閱下面的示例代碼

UIBezierPath* beizerPath2 = [UIBezierPath bezierPath]; 
[beizerPath2 moveToPoint:CGPointMake(0.0, 167)];  //Starting Point 
[beizerPath2 addLineToPoint:CGPointMake(100, 40)]; 
[beizerPath2 addLineToPoint:CGPointMake(200, 70)];  
[beizerPath2 addLineToPoint:CGPointMake(300, 30)];  
[beizerPath2 addLineToPoint:CGPointMake(320, 30)];  
[beizerPath2 addLineToPoint:CGPointMake(320, 167)];  //Finishing Point 
[beizerPath2 closePath];        //Close Path 


NSLog(@"Masking Feedstock with Bezier"); 
CAShapeLayer *maskLayer = [CAShapeLayer layer]; 
maskLayer.path = [beizerPath2 CGPath]; 
graphFeedStock.layer.mask = maskLayer;  
0

,而你可以合成圖像要通過與位圖數據工作的任何方式。另一個很簡單的方法就是創建一個UIView,添加你想要的所有圖像,然後從該uiview創建一個圖像。

如何創建一個圖像形成的UIView:

How to create an image from a UIView/UIScrollView