iOS注水动画效果以及歌词逐渐变色效果

正好了解到mask属性,于是就想起了当时学习Flash的时候做的遮罩效果,于是突发奇想,用它实现一些动画效果。


Mask是什么:

如果会PS的同学也许已经发现了,这不就是图层蒙版嘛。


注水动画的实现:

原理:

工具粗糙,表达能力有限,也只能做出这样的图了。实现注水动画就是这个原理,图片A和图片B分别是同样轮廓不同色值的图片,保证图片B在图片A上,然后再为图片B设置蒙版,蒙版与图片B重合的部分将显示图片B的内容,假如蒙版与图片B没有重合,那么图片B则不显示。所以我们先设置图片AB相同的Frame,然后为B设置蒙版,蒙版的初始位置与b不重合,之后慢慢重合一点点显示B,视觉效果上就好似是慢慢的变色。

废话少说直接上代码

UIImageView *imageBlackLine = [[UIImageView alloc]initWithFrame:CGRectMake(100, 100, 100, 100)];
    imageBlackLine.image = [UIImage imageNamed:@"line.png"];
    [self.view addSubview:imageBlackLine];
    
    UIImageView *imageGreenLine = [[UIImageView alloc]initWithFrame:CGRectMake(100, 100, 100, 100)];
    imageGreenLine.image = [UIImage imageNamed:@"line_green.png"];
//    imageGreenLine.layer.zPosition = 1;
    [self.view addSubview:imageGreenLine];
    
    UIView *maskView = [[UIView alloc]initWithFrame:CGRectMake(-100, 0, 100, 100)];
    maskView.backgroundColor = [UIColor yellowColor];
    //    maskView.alpha = 0.5;
    
    [UIView animateWithDuration:1 animations:^{
        maskView.frame = CGRectMake(0, 0, 100, 100);
    }];
    
    imageGreenLine.layer.mask = maskView.layer;
效果是这样的慢慢的被绿色填充,当然,我们还可以设置多个mask,不同形状的mask来实现不同的效果,这个就要根据需求来操作了



这里需要注意一下maskview的位置是以它所蒙版的图层左上角为起始的。


那么来实现歌词吧。开始我是这样写的,

然而我就懵逼了,并没有用。于是只有采用上面的老办法了,把文字画成图片吧。

至于绘制文本的例子我就不写了,反正实现的原理跟上面是一样的。可以使用

NSString或者Quartz2D来把文字画成图片,画完之后就跟上面一样的操作了。效果是这样的



加油吧,少年。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值