iOS高阶UI相关iOS学习笔记iOS开发技术分享

[iOS] Gif 图片的显示 以及文字的特效

2016-04-09  本文已影响1079人  一杯冰可乐

Gif 图片的显示: 

首先, 你需要一个开源三方, 也就是我们所熟悉的 SDWebImg

我们可以看到, 有一对文件是关于 Gif 的, 没错, 我们需要的就是这个.

在你们需要添加动态图片的地方 引用这个头文件.

#import <UIImage+GIF.h>

接下来我们需要一个 imageview 来放图片

@property (nonatomic, strong) UIImageView *loadingImageView;

下面就是动态图的解析方法了, 这个方法可以直接读取 gif 格式图片的每一个动画帧, 别忘了调用这个方法,这可不是自动执行的系统方法.

- (void)initLoadingImageView{

NSString  *name = @"43c353f13e852c1455ce2cd04fa19156.gif";

NSString  *filePath = [[NSBundle bundleWithPath:[[NSBundle mainBundle] bundlePath]] pathForResource:name ofType:nil];

NSData  *imageData = [NSData dataWithContentsOfFile:filePath];

if (!self.loadingImageView) {

self.loadingImageView = [[UIImageView alloc]init];

}

//    imgView.image = [UIImage animatedImageWithAnimatedGIFData:imageData];

self.loadingImageView.backgroundColor = [UIColor clearColor];

self.loadingImageView.image = [UIImage sd_animatedGIFWithData:imageData];

self.loadingImageView.frame = CGRectMake(80, 80, 100, 80);

self.loadingImageView.center = CGPointMake(self.view.center.x, self.view.frame.size.height / 3 - 60);

[self.img addSubview:self.loadingImageView];

[self.img bringSubviewToFront:self.loadingImageView];

}

文字的特效: 

效果如下:

关于这个, 有个开源小 demo, 叫 Twinkle.

可以直接把里面的 src 文件拖进你的工程中, 但是 demo 中是一个 button 点击后才显示动画, 并且只显示一次,在这里我 安利给大家一个让 label 文字显示这个效果并且无限播放.  hoho~

还是把 src 文件拖进你的工程, 然后引用头文件:

#import "UIView+Twinkle.h"

创建一个 label 属性来设置文字

@property (nonatomic, strong)UILabel *labelFlash;

别忘了给你的背景设置一个颜色, 不然 bulingbuling 的效果看不出来

然后就是设置你 label 的样式,位置和大小了.

self.labelFlash.text = @"JuJu";

self.labelFlash.font = [UIFont fontWithName:@"AvenirNext-Regular" size:32];

self.labelFlash.textColor = [UIColor colorWithRed:0.449 green:0.315 blue:1.000 alpha:1.000];

self.labelFlash.center = CGPointMake(self.view.center.x, self.view.center.y);

self.labelFlash.textAlignment = NSTextAlignmentCenter;

[self.view addSubview:self.labelFlash];

在上方代码最后调用一下动画效果就 ok 了.

[self.labelFlash twinkle];

到此, 你的 label 就可以看到效果了,虽然只是一遍.  要是没显示出来, 那你就是没放图片的原因,

上面就是 bulingbuling 的闪光图, 因为是白色, 拖到桌面就能看见了.

你也可以放一个小樱花,小树叶之类的图片, 但是名字要叫 TwinkleImage, 不然你就要改源码中的 imageName.

接下来就是让效果无限循环了, 首先先打开 TwinkleLayer+Anim.m 文件, 可以看见里面有三个属性和几个方法, 然后找到 fadeAnimation.repeatCount = 2 这句代码.

把 2 改成 MAXFLOAT 就好了. 

运行试试吧

上一篇下一篇

猜你喜欢

热点阅读