一、前言
ios开发中,大部分时候我们显示一张静态图就可以了,但是有的时候为了ui表现更生动,我就有可能需要展示gif图来达到效果了。
网上找了一下,显示gif图的框架找到了两个。
- sdwebimage
- yyimage
二、显示本地gif图
sdwebimage和yyimage的显示本地图片代码。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
//load loacle gif image - ( void )loadlocalegifimage{ //sdwebimage [self labelfactorywithframe:cgrectmake(0, 80, kscreenwidth, 20) title:@ "sdwebimage" ]; nsstring *path = [[nsbundle mainbundle] pathforresource:@ "test" oftype:@ "gif" ]; nsdata *gifdata = [nsdata datawithcontentsoffile:path]; uiimageview *sdimageview = [[uiimageview alloc] initwithframe:cgrectmake(0, 100, kscreenwidth, kscreenheight/3)]; sdimageview.image = [uiimage sd_animatedgifwithdata:gifdata]; [self.view addsubview:sdimageview]; //yyimage show gif image [self labelfactorywithframe:cgrectmake(0, kscreenheight/2 - 20, kscreenwidth, 20) title:@ "yyimage" ]; yyimage *yyimage = [yyimage imagenamed:@ "test.gif" ]; yyanimatedimageview *yyimageview = [[yyanimatedimageview alloc] initwithimage:yyimage]; yyimageview.frame = cgrectmake(0, kscreenheight/2, kscreenwidth, kscreenheight/3); [self.view addsubview:yyimageview]; } |
三、加载网络的gif图
sdwebimage和yyimage的加载网络图片代码。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
//download network gif image - ( void )downloadnetworkgifimage{ //sdwebimage [self labelfactorywithframe:cgrectmake(0, 80, kscreenwidth, 20) title:@ "sdwebimage" ]; flanimatedimageview *sdimageview = [[flanimatedimageview alloc] initwithframe:cgrectmake(0, 100, kscreenwidth, kscreenheight/3)]; [sdimageview sd_setimagewithurl:[nsurl urlwithstring:@ "http://photocdn.sohu.com/20151214/mp48444247_1450092561460_10.gif" ]]; [self.view addsubview:sdimageview]; //yyimage show gif image [self labelfactorywithframe:cgrectmake(0, kscreenheight/2 - 20, kscreenwidth, 20) title:@ "yyimage" ]; yyimage *yyimage = [yyimage imagewithdata:[nsdata datawithcontentsofurl:[nsurl urlwithstring:@ "http://photocdn.sohu.com/20151214/mp48444247_1450092561460_10.gif" ]]]; yyanimatedimageview *yyimageview = [[yyanimatedimageview alloc] initwithimage:yyimage]; yyimageview.frame = cgrectmake(0, kscreenheight/2, kscreenwidth, kscreenheight/3); [self.view addsubview:yyimageview]; } - ( void )labelfactorywithframe:(cgrect)frame title:(nsstring *)title{ uilabel *label = [[uilabel alloc] initwithframe:frame]; label.textalignment = nstextalignmentcenter; label.textcolor = [uicolor blackcolor]; label.font = [uifont systemfontofsize:14]; label.text = title; [self.view addsubview:label]; } |
四、podfile文件内容
1
2
3
4
5
6
7
8
9
10
|
platform :ios, '10.0' inhibit_all_warnings! target 'gifdemo' do pod 'yyimage' pod 'sdwebimage/gif' pod 'flanimatedimage' end |
五、没有demo的文章不是好文章
sdwebimage和yyimage框架显示本地和网络gif图的demo传送门
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对服务器之家的支持。
原文链接:https://segmentfault.com/a/1190000019473716