как я могу анимировать границы CAlayer для постепенного отображения изображения?

По определенным причинам я стараюсь избегать использования CAScrollLayer для выполнения это. Эффект, к которому я стремлюсь, заключается в постепенном раскрытии (снизу вверх) содержимого CALayer (файл png, который я ранее загрузил). Поэтому я подумал о следующем:

    layer.anchorPoint = CGPointMake(.5, 1);
    CABasicAnimation* a = [CABasicAnimation animationWithKeyPath:@"bounds.size.height"];
    a.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
    a.fillMode = kCAFillModeBoth;
    a.removedOnCompletion = NO;
    a.duration = 1;
    a.fromValue = [NSNumber numberWithFloat:0.];
    a.toValue = [NSNumber numberWithFloat:layer.bounds.size.height];
    [layer addAnimation:a forKey:nil];

Проблема в том, что вы можете сказать, что содержимое слоя масштабируется с учетом границ. Я пытался изменить границы, но содержимое всегда оставалось исходного размера, так что границы эффективно обрезают изображение, и по мере увеличения bounds.height изображение «показывает» себя.

Есть идеи, как это реализовать или что я могу упустить?

5
задан SaldaVonSchwartz 26 April 2012 в 18:34
поделиться