iOS简单动画效果:闪烁、移动、旋转、路径、组合、

#define kDegreesToRadian(x) (M_PI * (x) / 180.0)
 
#define kRadianToDegrees(radian) (radian*180.0)/(M_PI)
 
- (void)viewDidLoad
{
    [superviewDidLoad];
    self.title = @"测试动画";
    self.view.backgroundColor = [UIColorlightGrayColor];
    
    
    myTest1 = [[UILabelalloc]initWithFrame:CGRectMake(10, 100, 60, 40)];
    myTest1.backgroundColor = [UIColorblueColor];
    myTest1.textAlignment = NSTextAlignmentCenter;
    myTest1.text = @"张明炜";
    myTest1.textColor = [UIColorwhiteColor];
    [self.viewaddSubview:myTest1];
    
      //闪烁效果。
//    [myTest1.layer addAnimation:[self opacityForever_Animation:0.5] forKey:nil];
      ///移动的动画。
//    [myTest1.layer addAnimation:[self moveX:1.0f X:[NSNumber numberWithFloat:200.0f]] forKey:nil];
    //缩放效果。
//    [myTest1.layer addAnimation:[self scale:[NSNumber numberWithFloat:1.0f] orgin:[NSNumber numberWithFloat:3.0f] durTimes:2.0f Rep:MAXFLOAT] forKey:nil];
     //组合动画。
//    NSArray *myArray = [NSArray arrayWithObjects:[self opacityForever_Animation:0.5],[self moveX:1.0f X:[NSNumber numberWithFloat:200.0f]],[self scale:[NSNumber numberWithFloat:1.0f] orgin:[NSNumber numberWithFloat:3.0f] durTimes:2.0f Rep:MAXFLOAT], nil];
//    [myTest1.layer addAnimation:[self groupAnimation:myArray durTimes:3.0f Rep:MAXFLOAT] forKey:nil];
    //路径动画。
//    CGMutablePathRef myPah = CGPathCreateMutable();
//    CGPathMoveToPoint(myPah, nil,30, 77);
//    CGPathAddCurveToPoint(myPah, nil, 50, 50, 60, 200, 200, 200);//这里的是控制点。
//    [myTest1.layer addAnimation:[self keyframeAnimation:myPah durTimes:5 Rep:MAXFLOAT] forKey:nil];
    //旋转动画。
    [myTest1.layeraddAnimation:[selfrotation:2degree:kRadianToDegrees(90) direction:1repeatCount:MAXFLOAT] forKey:nil];
    
    
}
 
#pragma mark === 永久闪烁的动画 ======
-(CABasicACnimation *)opacityForever_Animation:(float)time
{
    CABasicAnimation *animation = [CABasicAnimationanimationWithKeyPath:@"opacity"];//必须写opacity才行。
    animation.fromValue = [NSNumbernumberWithFloat:1.0f];
    animation.toValue = [NSNumbernumberWithFloat:0.0f];//这是透明度。
    animation.autoreverses = YES;
    animation.duration = time;
    animation.repeatCount = MAXFLOAT;
    animation.removedOnCompletion = NO;
    animation.fillMode = kCAFillModeForwards;
     animation.timingFunction=[CAMediaTimingFunctionfunctionWithName:kCAMediaTimingFunctionEaseIn];///没有的话是均匀的动画。
    return animation;
}
 
#pragma mark =====横向、纵向移动===========
-(CABasicAnimation *)moveX:(float)time X:(NSNumber *)x
{
    CABasicAnimation *animation = [CABasicAnimationanimationWithKeyPath:@"transform.translation.x"];///.y的话就向下移动。
    animation.toValue = x;
    animation.duration = time;
    animation.removedOnCompletion = NO;//yes的话,又返回原位置了。
    animation.repeatCount = MAXFLOAT;
    animation.fillMode = kCAFillModeForwards;
    return animation;
}
 
#pragma mark =====缩放-=============
-(CABasicAnimation *)scale:(NSNumber *)Multiple orgin:(NSNumber *)orginMultiple durTimes:(float)time Rep:(float)repertTimes
{
    CABasicAnimation *animation = [CABasicAnimationanimationWithKeyPath:@"transform.scale"];
    animation.fromValue = Multiple;
    animation.toValue = orginMultiple;
    animation.autoreverses = YES;
    animation.repeatCount = repertTimes;
    animation.duration = time;//不设置时候的话,有一个默认的缩放时间.
    animation.removedOnCompletion = NO;
    animation.fillMode = kCAFillModeForwards;
    return  animation;
}
 
#pragma mark =====组合动画-=============
-(CAAnimationGroup *)groupAnimation:(NSArray *)animationAry durTimes:(float)time Rep:(float)repeatTimes
{
    CAAnimationGroup *animation = [CAAnimationGroupanimation];
    animation.animations = animationAry;
    animation.duration = time;
    animation.removedOnCompletion = NO;
    animation.repeatCount = repeatTimes;
    animation.fillMode = kCAFillModeForwards;
    return animation;
}
 
#pragma mark =====路径动画-=============
-(CAKeyframeAnimation *)keyframeAnimation:(CGMutablePathRef)path durTimes:(float)time Rep:(float)repeatTimes
{
    CAKeyframeAnimation *animation = [CAKeyframeAnimationanimationWithKeyPath:@"position"];
    animation.path = path;
    animation.removedOnCompletion = NO;
    animation.fillMode = kCAFillModeForwards;
    animation.timingFunction = [CAMediaTimingFunctionfunctionWithName:kCAMediaTimingFunctionEaseIn];
    animation.autoreverses = NO;
    animation.duration = time;
    animation.repeatCount = repeatTimes;
    return animation;
}
 
#pragma mark ====旋转动画======
-(CABasicAnimation *)rotation:(float)dur degree:(float)degree direction:(int)direction repeatCount:(int)repeatCount
{
    CATransform3D rotationTransform = CATransform3DMakeRotation(degree, 0, 0, direction);
    CABasicAnimation *animation = [CABasicAnimationanimationWithKeyPath:@"transform"];
    animation.toValue = [NSValue valueWithCATransform3D:rotationTransform];
    animation.duration  =  dur;
    animation.autoreverses = NO;
    animation.cumulative = NO;
    animation.fillMode = kCAFillModeForwards;
    animation.repeatCount = repeatCount;
    animation.delegate = self;
 
    return animation;
 
}

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
闪烁的文字,多种闪烁效果 https://github.com/Zws-China/WSShiningLabel WSShiningLabel *label1 = [[WSShiningLabel alloc] init]; label1.frame = CGRectMake(50, 35, 200, 25); label1.text = @"当保护你的她"; label1.textColor = [UIColor grayColor]; label1.font = [UIFont systemFontOfSize:20]; [label1 startShimmer]; // 开启闪烁 [self.view addSubview:label1]; WSShiningLabel *label2 = [[WSShiningLabel alloc] init]; label2.frame = CGRectMake(50, 105, 200, 25); label2.text = @"变成要你保护的她"; label2.textColor = [UIColor grayColor]; label2.font = [UIFont systemFontOfSize:20]; label2.shimmerType = ST_RightToLeft; // 滚动方向 right to left label2.durationTime = 1; // 滚动时间 label2.shimmerColor = [UIColor orangeColor]; // 高亮颜色 [label2 startShimmer]; // 开启闪烁 [self.view addSubview:label2]; WSShiningLabel *label3 = [[WSShiningLabel alloc] init]; label3.frame = CGRectMake(50, 175, 200, 25); label3.text = @"当你远离了家"; label3.textColor = [UIColor grayColor]; label3.font = [UIFont systemFontOfSize:20]; label3.shimmerType = ST_AutoReverse; // 滚动方向 左右来回 label3.shimmerWidth = 20; // 高亮的宽度 label3.shimmerRadius = 20; // 阴影的宽度 label3.shimmerColor = [UIColor yellowColor]; // 高亮颜色 [label3 startShimmer]; // 开启闪烁 [self.view addSubview:label3]; WSShiningLabel *label4 = [[WSShiningLabel alloc] init]; label4.frame = CGRectMake(50, 245, 200, 25); label4.text = @"努力有了你爱的她"; label4.textColor = [UIColor grayColor]; label4.font = [UIFont systemFontOfSize:20]; label4.shimmerType = ST_ShimmerAll; // 闪烁 label4.durationTime = 0.8; label4.shimmerColor = [UIColor redColor]; [label4 startShimmer]; [self.view addSubview:label4];

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值