2012-03-23 9 views
5

Kolejny problem z animacji na warstwie, aby skalować i pokazać, jak rośnie od dołu po lewej stronie, nieco podobny do rysunku:CALayer animacja skala wielkości warstwy zaczynając od lewej dolnej prawym górnym

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

mam Próbowałem animacji, ale nie udało mi się jej osiągnąć dokładnie tak, jak chcę. Proszę sugerować. Obecnie używa następującego kodu do skalowania:

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]; 
+1

właśnie edytowany moje pytanie. – Amit

Odpowiedz

6

Powinieneś ustawić inny punkt kontrolny, aby osiągnąć ten efekt.

layer.anchorPoint = CGPointMake(0.0f, 1.0f); 
1

Wszystko to nie działa dla mnie. Metody że ustalenie ram i punktów

- (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; 
} 
1

Mam nadzieję, że może pomóc:

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) 
} 
Powiązane problemy