создание бара с основной анимацией - PullRequest
0 голосов
/ 02 сентября 2011

Итак, я пытаюсь создать анимированную гистограмму, используя анимацию ядра Apple.Бар - это просто прямоугольная фигура, значение которой составляет 0-100%.Когда он появился впервые, я хотел, чтобы он показывал анимацию, идущую от 0 до x%.Как я могу нарисовать прямоугольную форму, подобную этой?

ОБНОВЛЕНИЕ: Скорее всего, у меня будет полоса как изображение, поэтому мне нужно анимировать это изображение до определенной высоты ...

Ответы [ 2 ]

3 голосов
/ 02 сентября 2011

Если ваши требования действительно так просты, вы можете создать представление, установить его цвет фона и настроить (или анимировать) его frame.width (или height) по мере необходимости.

Конечно, есть более сложныеспособы сделать это, но нет необходимости чрезмерного инжиниринга для простой проблемы.

0 голосов
/ 02 сентября 2011

Это должно делать именно то, что вы хотите:

- (UIImageView*)createNewBarWithValue:(float)percent atLocation:(CGPoint)location
{
    UIImageView *newBar = [[[UIImageView alloc] initWithFrame:CGRectMake(location.x, location.y, 50, 200)] autorelease];
    newBar.image = [UIImage imageNamed:@"bar.png"];

    CABasicAnimation *scaleToValue = [CABasicAnimation animationWithKeyPath:@"transform.scale.y"];
    scaleToValue.toValue = [NSNumber numberWithFloat:percent];
    scaleToValue.fromValue = [NSNumber numberWithFloat:0];
    scaleToValue.duration = 1.0f;
    scaleToValue.delegate = self;

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

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

    return newBar;
}
...