ios 中心放大動畫

方健發表於2014-08-25

http://www.slideshare.net/robby_brown/core-animation-beyond-the-basics

-(void)animationOfCABasicAnimation
{
    UIView *redView=[[UIView alloc]initWithFrame:CGRectMake(10, 10, 100, 100)];
    redView.backgroundColor=[UIColor redColor];

    [self.view addSubview:redView];
    //建立一個CABasicAnimation物件
    CABasicAnimation *animation=[CABasicAnimation animationWithKeyPath:@"transform.scale"];
    redView.layer.anchorPoint = CGPointMake(.5,.5);
    animation.fromValue = @0.0f;
    animation.toValue = @1.0f;

    //動畫時間
    animation.duration=1;
    //是否反轉變為原來的屬性值
   // animation.autoreverses=YES;
    //把animation新增到圖層的layer中,便可以播放動畫了。forKey指定要應用此動畫的屬性
    [redView.layer addAnimation:animation forKey:@"scale"];
}

組合動畫和時間軸:

-(void) combineAnimation
{
    UIView *redView=[[UIView alloc]initWithFrame:CGRectMake(10, 10, 100, 100)];
    redView.backgroundColor=[UIColor redColor];
    [self.view addSubview:redView];

    //建立一個CABasicAnimation物件
    CABasicAnimation *animation=[CABasicAnimation animationWithKeyPath:@"transform.scale"];
    redView.layer.anchorPoint = CGPointMake(.5,.5);
   // animation.fromValue = @2.0f;
    animation.toValue = @0.5f;

    //動畫時間
    animation.duration=1;
    animation.beginTime=CACurrentMediaTime()+1;
    //是否反轉變為原來的屬性值
    // animation.autoreverses=YES;
    //把animation新增到圖層的layer中,便可以播放動畫了。forKey指定要應用此動畫的屬性
    [redView.layer addAnimation:animation forKey:@"scale"];



    CABasicAnimation *theAnimation;
    // create the animation object, specifying the position property as the key path
    // the key path is relative to the target animation object (in this case a CALayer)
    theAnimation=[CABasicAnimation animationWithKeyPath:@"position"];

    // set the fromValue and toValue to the appropriate points
    theAnimation.fromValue=[NSValue valueWithCGPoint:CGPointMake(74.0,74.0)];
    theAnimation.toValue=[NSValue valueWithCGPoint:CGPointMake(300.0,406.0)];

    // set the duration to 3.0 seconds
    theAnimation.duration=3.0;

    // set a custom timing function
    theAnimation.timingFunction=[CAMediaTimingFunction functionWithControlPoints:0.25f :0.1f :0.25f :1.0f];
    [redView.layer addAnimation:theAnimation forKey:@"move"];

}

相關文章