为图表设置UIImageView的动画

时间:2011-09-16 18:18:42

标签: iphone objective-c ipad core-animation

我正在尝试从UIImageView创建一个简单的条形图,到目前为止我的代码是:

- (void)createNewBarWithValue:(float)percent andImage:(UIImageView *)newBar
{
    CABasicAnimation *scaleToValue = [CABasicAnimation animationWithKeyPath:@"transform.scale.y"];
    scaleToValue.toValue = [NSNumber numberWithFloat:percent*2.5];
    scaleToValue.fromValue = [NSNumber numberWithFloat:0];
    scaleToValue.duration = 1.5f;
    scaleToValue.delegate = self;

    newBar.layer.anchorPoint = CGPointMake(0.5, 1);

    [newBar.layer addAnimation:scaleToValue forKey:@"scaleUp"];
    CGAffineTransform scaleTo = CGAffineTransformMakeScale( 1.0f, percent * 2.5);
    newBar.transform = scaleTo;
}

我在这里所做的一切都非常简单,只需使用转换来获取动画。可以看到动画的结果here

现在我想要做的就是让我的最终图表如下:

enter image description here

现在我在这里看到的一个问题是顶部的走投无路的边界。我不能用我现在拥有的东西来做这件事。那么最简单的解决办法是什么呢?

1 个答案:

答案 0 :(得分:0)

试试这个:

newBar.layer.cornerRadius = 5;//or any other value

不幸的是,这将设置所有四个角的半径。您可能必须隐藏底部的两个角并相应地调整高度,或者在newBar的底部顶部添加另一个图像视图。