2012-01-25 4 views
0
내가 [box.png에있는 UIImageView] 변형 높이 단지 2 개의 바,

애니메이션

을 보여 잔인한 같은 핵심 플롯을 사용하려는 해달라고, 내 응용 프로그램에서 2 막대 그래프를 표시해야합니다

간단한 막대 그래프를 IOS

나는 UIView 애니메이션을 사용하여 몇 가지 테스트를 수행했다. 바가 커지거나 줄어들기에 충분할 것 같다. [문제는 높이가 시작점에 의존하기 때문에 바가 Y에 대해 0 점이 없다는 것입니다. 막대의 높이로 변경]

그래서 Y 축에 0 점을 설정할 수 있습니까? 그렇다면 시작점뿐만 아니라 높이를 생각해야합니다.

또는 내가 그렇게하지 일부 바 발전기 프레임 워크와 함께 갈 것이다 core-plot로 죽여 ,,

간단한, 가벼운 무게는 무엇

?

power-plot

ecgraph , 기타?

추신. ...

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]; 
***} 

덕분에 많은 다른 점은 내가 차트에 대한 사용자 정의 배경을 가질 필요가 있다는 것입니다 및 사용자 정의 바 메신저 바]

코드에 대한 box.png 사용하는 이유 이잖아!

+0

은 코드를보기를, 그건 설명보다는 코드를 이해하기가 훨씬 쉽습니다. – ikuramedia

+0

@ikuragames 안녕하세요, 친절하게도 수정 된 질문 덕분에 코드를 확인해보세요! – MaKo

+0

@MaKo : 그래프에 가변 모양의 블록을 그리는 간단한 'UIView'하위 클래스를 만드는 것이 어떨까요? Core Animation을 사용하여 내용을 애니메이션으로 만들 수 있습니다. –

답변

1

를 기본 차트에 비해 조금 느린가 될 것, 잘 작동하지만, 충분한

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

알고 계시 겠지만, 귀하의 프로젝트에도 적용됩니다. 하지만 iOS에는 Chart에 대한 좋은 라이브러리가 없기 때문에 다른 접근 방식을 사용했습니다.

웹에서 사용할 수있는 HTML5/CSS 기반 무료 차트 엔진에서 UIWebview를 사용했습니다. 다음과 같이

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

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

    return result; 
} 

그런 다음 사용 : 나를 위해 자사의 유틸리티 함수 정의 내 프로젝트에 대한

관련 문제