乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      iOS:CABasicAnimation animationWithKeyPath 一些規(guī)定的值

       w1ids 2015-12-14

      When using the ‘CABasicAnimation’ from the QuartzCore Framework in Objective-C, you have to specify an animationWithKeyPath.  This is a long string and is not easily listed in the CABasicAnimation, CAPropertyAnimation, or the CAAnimation class.  I ended up finding a handy chart within the Core Animation Programming guide in Apple’s iPhone OS Reference Library.  Hope this helps save someone time, at least it will for me.

       

       

       

      復(fù)制代碼
      CABasicAnimation *theAnimation;
      theAnimation=[CABasicAnimation animationWithKeyPath:@'transform.translation.y'];
      theAnimation.delegate = self;
      theAnimation.duration = 1;
      theAnimation.repeatCount = 0;
      theAnimation.removedOnCompletion = FALSE;
      theAnimation.fillMode = kCAFillModeForwards;
      theAnimation.autoreverses = NO;
      theAnimation.fromValue = [NSNumber numberWithFloat:0];
      theAnimation.toValue = [NSNumber numberWithFloat:-60]; 
      [self.view.layer addAnimation:theAnimation forKey:@'animateLayer'];
      復(fù)制代碼
      復(fù)制代碼
      我們可以通過animationWithKeyPath鍵值對的方式來改變動畫
      animationWithKeyPath的值:
       
      transform.scale = 比例轉(zhuǎn)換
      transform.scale.x = 闊的比例轉(zhuǎn)換
      transform.scale.y = 高的比例轉(zhuǎn)換
      transform.rotation.z = 平面圖的旋轉(zhuǎn)
      opacity = 透明度
       
      margin
      zPosition
       
      backgroundColor
       
      cornerRadius
      borderWidth
      
       
      bounds
      contents
      
      contentsRect
      cornerRadius
      frame
      
      hidden
      
      mask
      
      masksToBounds
      opacity
      
      position
      
      shadowColor
      
      shadowOffset
      
      shadowOpacity
      shadowRadius
      [self. ui_View.layer removeAllAnimations];
          
          CABasicAnimation *pulse = [CABasicAnimation animationWithKeyPath:@'transform.scale'];
          pulse.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut];
          pulse.duration = 0.5   (rand() % 10) * 0.05;
          pulse.repeatCount = 1;
          pulse.autoreverses = YES;
          pulse.fromValue = [NSNumber numberWithFloat:.8];
          pulse.toValue = [NSNumber numberWithFloat:1.2];
          [self.ui_View.layer addAnimation:pulse forKey:nil];
      
      // bounds
       
      CABasicAnimation *anim = [CABasicAnimation animationWithKeyPath:@'bounds'];
          anim.duration = 1.f;
          anim.fromValue = [NSValue valueWithCGRect:CGRectMake(0,0,10,10)];
          anim.toValue = [NSValue valueWithCGRect:CGRectMake(10,10,200,200)];
          anim.byValue  = [NSValue valueWithCGRect:self. ui_View.bounds]; 
      //    anim.toValue = (id)[UIColor redColor].CGColor;
      //    anim.fromValue =  (id)[UIColor blackColor].CGColor;
          
          anim.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
          anim.repeatCount = 1;
          anim.autoreverses = YES;
          
          [ui_View.layer addAnimation:anim forKey:nil];
      //cornerRadius
       
          CABasicAnimation *anim2 = [CABasicAnimation animationWithKeyPath:@'cornerRadius'];
          anim2.duration = 1.f;
          anim2.fromValue = [NSNumber numberWithFloat:0.f];
          anim2.toValue = [NSNumber numberWithFloat:20.f];
          anim2.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
          anim2.repeatCount = CGFLOAT_MAX;
          anim2.autoreverses = YES;
          
          [ui_View.layer addAnimation:anim2 forKey:@'cornerRadius'];
      
      //contents
       
      CABasicAnimation *anim = [CABasicAnimation animationWithKeyPath:@'contents'];
          anim.duration = 1.f;
          anim.fromValue = (id)[UIImage imageNamed:@'1.jpg'].CGImage;
          anim.toValue = (id)[UIImage imageNamed:@'2.png'].CGImage;
      //    anim.byValue  = (id)[UIImage imageNamed:@'3.png'].CGImage;
      //    anim.toValue = (id)[UIColor redColor].CGColor;
      //    anim.fromValue =  (id)[UIColor blackColor].CGColor;
          
          anim.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
          anim.repeatCount = CGFLOAT_MAX;
          anim.autoreverses = YES;
          
          [ui_View.layer addAnimation:anim forKey:nil];
      
      
       
      [ui_View.layer setShadowOffset:CGSizeMake(2,2)];
          [ui_View.layer setShadowOpacity:1];
          [ui_View.layer setShadowColor:[UIColor grayColor].CGColor];
      //
          CABasicAnimation *anim = [CABasicAnimation animationWithKeyPath:@'shadowColor'];
          anim.duration = 1.f;
          anim.toValue = (id)[UIColor redColor].CGColor;
          anim.fromValue =  (id)[UIColor blackColor].CGColor;
          
          anim.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
          anim.repeatCount = CGFLOAT_MAX;
          anim.autoreverses = YES;
          
          [ui_View.layer addAnimation:anim forKey:nil];
          
          CABasicAnimation *_anim = [CABasicAnimation animationWithKeyPath:@'shadowOffset'];
          _anim.duration = 1.f;
          _anim.fromValue = [NSValue valueWithCGSize:CGSizeMake(0,0)];
          _anim.toValue = [NSValue valueWithCGSize:CGSizeMake(3,3)];
          
          _anim.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
          _anim.repeatCount = CGFLOAT_MAX;
          _anim.autoreverses = YES;
          
          [ui_View.layer addAnimation:_anim forKey:nil];
          
          
          CABasicAnimation *_anim1 = [CABasicAnimation animationWithKeyPath:@'shadowOpacity'];
          _anim1.duration = 1.f;
          _anim1.fromValue = [NSNumber numberWithFloat:0.5];
          _anim1.toValue = [NSNumber numberWithFloat:1];
          
          _anim1.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
          _anim1.repeatCount = CGFLOAT_MAX;
          _anim1.autoreverses = YES;
          
          [ui_View.layer addAnimation:_anim1 forKey:nil];
          
          
          
          CABasicAnimation *_anim2 = [CABasicAnimation animationWithKeyPath:@'shadowRadius'];
          _anim2.duration = 1.f;
          _anim2.fromValue = [NSNumber numberWithFloat:10];
          _anim2.toValue = [NSNumber numberWithFloat:5];
          
          _anim2.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
          _anim2.repeatCount = CGFLOAT_MAX;
          _anim2.autoreverses = YES;
          
          [ui_View.layer addAnimation:_anim2 forKey:nil];
      復(fù)制代碼

       

       

       

       

       

      幾個可以用來實現(xiàn)熱門APP應(yīng)用PATH中menu效果的幾個方法

      (CABasicAnimation *)opacityForever_Animation:(float)time //永久閃爍的動畫

      {

          CABasicAnimation *animation=[CABasicAnimation animationWithKeyPath:@'opacity'];

          animation.fromValue=[NSNumber numberWithFloat:1.0];

          animation.toValue=[NSNumber numberWithFloat:0.0];

          animation.autoreverses=YES;

          animation.duration=time;

          animation.repeatCount=FLT_MAX;

          animation.removedOnCompletion=NO;

          animation.fillMode=kCAFillModeForwards;

          return animation;

      }

       

      (CABasicAnimation *)opacityTimes_Animation:(float)repeatTimes durTimes:(float)time; //有閃爍次數(shù)的動畫

      {

          CABasicAnimation *animation=[CABasicAnimation animationWithKeyPath:@'opacity'];

          animation.fromValue=[NSNumber numberWithFloat:1.0];

          animation.toValue=[NSNumber numberWithFloat:0.4];

          animation.repeatCount=repeatTimes;

          animation.duration=time;

          animation.removedOnCompletion=NO;

          animation.fillMode=kCAFillModeForwards;

          animation.timingFunction=[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn];

          animation.autoreverses=YES;

          return  animation;

      }

       

      (CABasicAnimation *)moveX:(float)time X:(NSNumber *)x //橫向移動

      {

          CABasicAnimation *animation=[CABasicAnimation animationWithKeyPath:@'transform.translation.x'];

          animation.toValue=x;

          animation.duration=time;

          animation.removedOnCompletion=NO;

          animation.fillMode=kCAFillModeForwards;

          return animation;

      }

       

      (CABasicAnimation *)moveY:(float)time Y:(NSNumber *)y //縱向移動

      {

          CABasicAnimation *animation=[CABasicAnimation animationWithKeyPath:@'transform.translation.y'];

          animation.toValue=y;

          animation.duration=time;

          animation.removedOnCompletion=NO;

          animation.fillMode=kCAFillModeForwards;

          return animation;

      }

       

      (CABasicAnimation *)scale:(NSNumber *)Multiple orgin:(NSNumber *)orginMultiple durTimes:(float)time Rep:(float)repeatTimes //縮放

      {

          CABasicAnimation *animation=[CABasicAnimation animationWithKeyPath:@'transform.scale'];

          animation.fromValue=orginMultiple;

          animation.toValue=Multiple;

          animation.duration=time;

          animation.autoreverses=YES;

          animation.repeatCount=repeatTimes;

          animation.removedOnCompletion=NO;

          animation.fillMode=kCAFillModeForwards;

          return animation;

      }

       

      (CAAnimationGroup *)groupAnimation:(NSArray *)animationAry durTimes:(float)time Rep:(float)repeatTimes //組合動畫

      {

          CAAnimationGroup *animation=[CAAnimationGroup animation];

          animation.animations=animationAry;

          animation.duration=time;

          animation.repeatCount=repeatTimes;

          animation.removedOnCompletion=NO;

          animation.fillMode=kCAFillModeForwards;

          return animation;

      }

       

      (CAKeyframeAnimation *)keyframeAniamtion:(CGMutablePathRef)path durTimes:(float)time Rep:(float)repeatTimes //路徑動畫

      {

          CAKeyframeAnimation *animation=[CAKeyframeAnimation animationWithKeyPath:@'position'];

          animation.path=path;

          animation.removedOnCompletion=NO;

          animation.fillMode=kCAFillModeForwards;

          animation.timingFunction=[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn];

          animation.autoreverses=NO;

          animation.duration=time;

          animation.repeatCount=repeatTimes;

          return animation;

      }

       

      (CABasicAnimation *)movepoint:(CGPoint )point //點移動

      {

          CABasicAnimation *animation=[CABasicAnimation animationWithKeyPath:@'transform.translation'];

          animation.toValue=[NSValue valueWithCGPoint:point];

          animation.removedOnCompletion=NO;

          animation.fillMode=kCAFillModeForwards;

          return animation;

      }

       

      (CABasicAnimation *)rotation:(float)dur degree:(float)degree direction:(int)direction repeatCount:(int)repeatCount //旋轉(zhuǎn)

      {

          CATransform3D rotationTransform  = CATransform3DMakeRotation(degree, 00,direction);

          CABasicAnimation* animation;

          animation = [CABasicAnimation animationWithKeyPath:@'transform'];

       

      animation.toValue= [NSValue valueWithCATransform3D:rotationTransform];

          animation.duration= dur;

      animation.autoreversesNO;

          animation.cumulativeYES;

          animation.removedOnCompletion=NO;

          animation.fillMode=kCAFillModeForwards;

          animation.repeatCount= repeatCount; 

      animation.delegateself;

       

      return animation;

      }

       

       

       

       

       

      實現(xiàn)view放大再縮小的效果

      復(fù)制代碼
      - (void)viewDidLoad {
      
          [super viewDidLoad];
      
      
      layer=[CALayer layer];
      
      layer.frame=CGRectMake(50, 200, 50, 50);
      
      layer.backgroundColor=[UIColor orangeColor].CGColor;
      
      layer.cornerRadius=8.0f;
      
      
      CABasicAnimation *animation=[CABasicAnimation animationWithKeyPath:@'transform.translation.y'];
      
      animation.duration=4.0f;
      
      animation.autoreverses=NO;
      
      animation.repeatCount=1;
      
      animation.toValue=[NSNumber numberWithInt:-10];
      
      animation.fromValue=[NSNumber numberWithInt:200];
      
      animation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
      
      
      CABasicAnimation *animationZoomIn=[CABasicAnimation animationWithKeyPath:@'transform.scale'];
      
      animationZoomIn.duration=2.0f;
      
      animationZoomIn.autoreverses=NO;
      
      animationZoomIn.repeatCount=1;
      
      animationZoomIn.toValue=[NSNumber numberWithFloat:1.56];
      
      animationZoomIn.timingFunction=[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn];
      
      CABasicAnimation *animationZoomOut=[CABasicAnimation animationWithKeyPath:@'transform.scale'];
      
      animationZoomOut.beginTime=2.0f;
      
      animationZoomOut.duration=2.0f;
      
      animationZoomOut.autoreverses=NO;
      
      animationZoomOut.repeatCount=1;
      
      animationZoomOut.toValue=[NSNumber numberWithFloat:.01];
      
      animationZoomOut.timingFunction=[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut];
      
      CAAnimationGroup *group=[CAAnimationGroup animation];
      
      group.duration=4.0f;
      
      group.animations=[NSArray arrayWithObjects: animation, animationZoomIn, animationZoomOut,nil];
      
      group.removedOnCompletion=NO;
      
      group.fillMode=kCAFillModeForwards;
      
      [layer addAnimation:group forKey:nil];
      
      [self.view.layer addSublayer:layer];
      
      
      //layer.hidden=YES;
      
      }
      復(fù)制代碼


        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多