CALayer масштаба анимации для размера слоя, начиная с нижнего левого до верхнего правого - PullRequest
6 голосов
/ 23 марта 2012

Еще одна проблема с анимацией на слое, когда он масштабируется и выглядит как растущий снизу слева, чем-то похожий на рисунок:

---------------    
|             |
|----------   |
|         |   |
|         |   |
|-----    |   |
|    |    |   |
---------------

Я попробовал некоторые анимации, но не смог добиться этого именно так, как я хочу. Пожалуйста, предложите. В настоящее время используется следующий код для масштабирования:

layer.anchorPoint = CGPointMake(1, 1);
CABasicAnimation *scale = [CABasicAnimation animationWithKeyPath:@"transform.scale"];
[scale setFromValue:[NSNumber numberWithFloat:0.0f]];
[scale setToValue:[NSNumber numberWithFloat:1.0f]];
[scale setDuration:1.0f];
[scale setRemovedOnCompletion:NO];
[scale setFillMode:kCAFillModeForwards];

Ответы [ 3 ]

6 голосов
/ 19 апреля 2012

Вы должны установить другую точку привязки для достижения этого эффекта.

    layer.anchorPoint = CGPointMake(0.0f, 1.0f);
1 голос
/ 17 марта 2016

Надеюсь, это поможет вам:

let frame = pathView.frame
let anchorPoint = CGPointMake(0, 1) //Set the animation direction
let position = CGPointMake(frame.origin.x + anchorPoint.x * frame.size.width, frame.origin.y + anchorPoint.y * frame.size.height)
pathView.layer.anchorPoint = anchorPoint
pathView.layer.position = position
UIView.animateWithDuration(0.8){ () -> Void in
    pathView.layer.transform = CATransform3DMakeScale(0.5, 0.5, 1)
}
1 голос
/ 05 июля 2012

Все это не работает для меня.Методы фиксации кадров и точек

- (CGRect) fixRect:(CGRect)rect inRect:(CGRect)container
{
    CGRect frame = rect;
    frame.origin.y = container.size.height - frame.origin.y - frame.size.height;
    return frame;
}
- (CGPoint) fixPoint:(CGPoint)point fromPoint:(CGSize)containerSize
{
    CGPoint frame = point;
    frame.y = size.height - frame.y;
    return frame;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...