美文网首页
kPOPLayerScaleXY

kPOPLayerScaleXY

作者: 程序员都是傻子呀 | 来源:发表于2020-03-31 16:41 被阅读0次
    • (void)animation1 {
      [self moveAnchorPoint:CGPointMake(0.5, 0.5) With:self.logoImageView.layer];
      POPSpringAnimation *anim = [POPSpringAnimation animationWithPropertyNamed:kPOPLayerScaleXY];
      anim.fromValue = [NSValue valueWithCGSize:CGSizeMake(0.0, 0.0)];
      anim.toValue = [NSValue valueWithCGSize:CGSizeMake(1.0, 1.0)];
      // 速度 可设范围0-20,默认12,值越大速度越快,结束的越快
      anim.springSpeed = 8.0f;
      // 振幅 可设范围0-20,默认4,值越大振动幅度越大
      anim.springBounciness = 5.0f;
      // 拉力 拉力越大,动画的速度越快,结束的越快。 接下来的三个值一般不用设置,可以分别放开注释查看效果
      // anim.dynamicsTension = 250;
      // 摩擦力 摩擦力越大,动画的速度越慢,振动的幅度越小。
      // anim.dynamicsFriction = 100.0;
      // 质量 质量越大,动画的速度越慢,振动的幅度越大,结束的越慢
      anim.dynamicsMass = 10;
      anim.beginTime = CACurrentMediaTime() + 1.0f;
      // 重复
      // anim.repeatForever = YES;
      // 3. 添加到view上
      [self.logoImageView.layer pop_addAnimation:anim forKey:@"ScaleXY"];
      }

    • (void)moveAnchorPoint:(CGPoint)point With:(CALayer *)originLayer {
      CGPoint oldOrigin = originLayer.frame.origin;
      originLayer.anchorPoint = point;
      CGPoint newOrigin = originLayer.frame.origin;

      CGPoint translation = NSMakePoint(newOrigin.x - oldOrigin.x, newOrigin.y - oldOrigin.y);
      NSRect frame = originLayer.frame;
      [originLayer setFrame:frame];
      frame.origin = NSMakePoint(originLayer.frame.origin.x - translation.x, originLayer.frame.origin.y - translation.y);
      [originLayer setFrame:frame];
      }

    相关文章

      网友评论

          本文标题:kPOPLayerScaleXY

          本文链接:https://www.haomeiwen.com/subject/ssxguhtx.html