2012-01-25 143 views
0

我需要顯示2條線圖在我的應用程序,我不想使用核心情節一樣是矯枉過正,只顯示2變種的高度吧,[UIImageView的與box.png]IOS簡單的條形圖動畫

我已經做了一些測試,只是使用UIView動畫,這似乎足以使酒吧成長或縮小,[問題是高度取決於起點,所以我的酒吧沒有0點爲Y,至極隨着酒吧的高度變化]

所以我怎麼能爲我的Y軸設置點0,所以我只需要考慮高度,而不是起點呢?

或應我去一些酒吧發電機框架,也不是那麼超必殺爲core-plot ,,

什麼是最簡單的,重量最輕?

power-plot

ecgraph,其他?

PS。另外一點是,我需要有圖表自定義背景以及自定義欄這就是爲什麼即時通訊使用的box.png了吧]

代碼...

viewDidLoad { *** 
CGRect chartbackGroundImageRect = CGRectMake(150, 20, 632, 653); 
UIImageView *chartbackGroundImage = [[UIImageView alloc] initWithFrame:chartbackGroundImageRect]; 
[chartbackGroundImage setImage:[UIImage imageNamed:@"chartArtBgnd.png"]]; 
chartbackGroundImage.opaque = YES; // explicitly opaque for performance 
[self.view addSubview:chartbackGroundImage]; 
[chartbackGroundImage release]; 
CGRect leftBarImageRect = CGRectMake(550, 550, 81, 40); 
leftBarImage = [[UIImageView alloc] initWithFrame:leftBarImageRect]; 
[leftBarImage setImage:[UIImage imageNamed:@"leftBar.png"]]; 
leftBarImage.opaque = YES; // explicitly opaque for performance 
[self.view addSubview:leftBarImage]; 
[leftBarImage release]; 
***} 

testBarAnimation {*** 
// Setup the animation 
[UIView beginAnimations:nil context:NULL]; 
[UIView setAnimationDuration:0.2]; //animation for arrow 
[UIView setAnimationCurve:UIViewAnimationCurveEaseIn]; 
[UIView setAnimationBeginsFromCurrentState:YES]; 

CGRect newFrame = CGRectMake(550, 300, 81, 290); 

leftBarImage.frame = newFrame; 


[UIView commitAnimations]; 
***} 

非常感謝!

+0

顯示你的代碼,它是理解代碼比解釋更容易。 – ikuramedia

+0

@ikuragames嗨,請檢查編輯的問題上的代碼謝謝! – MaKo

+0

@MaKo:爲什麼不創建一個簡單的'UIView'子類,爲您的圖形繪製可變形狀的塊?您可以使用Core Animation動畫化內容。 –

回答

1

定義一個效用函數:

CGRect modifyRectByHeight(CGRect originalRect, CGFloat newHeight) 
{ 
    CGRect result = originalRect; 

    result.origin.y += height; 
    result.size.height += height; 

    return result; 
} 

然後按如下方式使用:

leftBarImage.frame = modifyRectByHeight(leftBarImage.frame, 150); 
1

我不知道,它適用於您的項目。但我使用了不同的方法,因爲iOS沒有Chart的好庫。

我在Web上使用了基於HTML5/CSS的免費圖表引擎的UIWebview。對我來說,它的做工精細,有點慢比本地的圖表會,但足以讓我的項目