在项目的开发过程中,我们经常会遇到使用动画的时候,比如我们在请求接口直接开始一个动画,请求结束后结束动画,下面我就给大家展示一个很方便的帧动画的用法:

代码如下:

.h

#import <Foundation/Foundation.h>

@interface hActiveView : NSObject

+(void)startAnimatedInView:(UIView *)aView;
+(void)stopAnimatedInView:(UIView *)aView; @end

.m

#import "hActiveView.h"

@implementation hActiveView

+(void)startAnimatedInView:(UIView *)aView
{
UIView *topView=[UIView new];
topView.backgroundColor=[UIColor clearColor];
topView.tag=;
topView.userInteractionEnabled=YES;
[aView addSubview:topView];
[topView mas_makeConstraints:^(MASConstraintMaker *make) {
// make.edges.equalTo(aView).with.insets(UIEdgeInsetsMake(0, 44, 0, 0));
make.height.equalTo(@);
make.top.equalTo(@);
make.left.equalTo(@);
make.right.equalTo(@);
}]; UIView *backgroundView=[UIView new];
backgroundView.backgroundColor=[[UIColor whiteColor] colorWithAlphaComponent:0.7];
backgroundView.tag=;
backgroundView.userInteractionEnabled=YES;
[aView addSubview:backgroundView];
[backgroundView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(aView).with.insets(UIEdgeInsetsMake(, , , ));
}]; //黑色view
UIView *hView=[UIView new];
hView.tag=;
hView.backgroundColor=[UIColor clearColor];
hView.alpha = 0.7;
hView.layer.borderWidth = ;
hView.layer.borderColor = [UIColor clearColor].CGColor;
hView.layer.cornerRadius = ;
[aView addSubview:hView];
[hView mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(, ));
make.centerX.mas_equalTo(aView.mas_centerX);
make.centerY.mas_equalTo(aView.mas_centerY);
}];
UIImageView *gifImageView = [[UIImageView alloc] initWithFrame:CGRectMake(, , , )];
gifImageView.tag=; NSArray *gifArray = [NSArray arrayWithObjects:[UIImage imageNamed:@"1_1"],
[UIImage imageNamed:@"2_1"],
[UIImage imageNamed:@"3_1"],
[UIImage imageNamed:@"4_1"],
[UIImage imageNamed:@"5_1"],
[UIImage imageNamed:@"6_1"],
[UIImage imageNamed:@"7_1"],
[UIImage imageNamed:@"8_1"],
[UIImage imageNamed:@"9_1"],
[UIImage imageNamed:@"10_1"],
[UIImage imageNamed:@"11_1"],
[UIImage imageNamed:@"12_1"],
[UIImage imageNamed:@"13_1"],
[UIImage imageNamed:@"14_1"],
[UIImage imageNamed:@"15_1"],
[UIImage imageNamed:@"16_1"],
[UIImage imageNamed:@"17_1"],
[UIImage imageNamed:@"18_1"],
[UIImage imageNamed:@"19_1"],
[UIImage imageNamed:@"20_1"],
[UIImage imageNamed:@"21_1"],
[UIImage imageNamed:@"22_1"],
[UIImage imageNamed:@"23_1"],
[UIImage imageNamed:@"24_1"],
[UIImage imageNamed:@"25_1"],nil];
gifImageView.animationImages = gifArray; //动画图片数组
gifImageView.animationDuration = ; //执行一次完整动画所需的时长
gifImageView.animationRepeatCount = ; //动画重复次数
[gifImageView startAnimating];
[hView addSubview:gifImageView]; }
+(void)stopAnimatedInView:(UIView *)aView
{
[[aView viewWithTag:] removeFromSuperview];
[[aView viewWithTag:] removeFromSuperview];
[[aView viewWithTag:] removeFromSuperview];
[[aView viewWithTag:] removeFromSuperview];
NSArray * arr = [aView subviews];
[arr enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
if ([obj isKindOfClass:[UIImageView class]])
{
UIImageView *active = (UIImageView *)obj;
[active stopAnimating]; }
}];
} @end

别问我为什么不for循环添加图片,代码比较早了,最近想起来,所以在博客里面记录了一下!

在pch文件里面:

//请求动画开始
#define HStart(h) [hActiveView startAnimatedInView:h];
//请求动画结束
#define HStop(h) [hActiveView stopAnimatedInView:h];

这样,就可以在想使用动画的地方直接使用了!

iOS开发之 -- 帧动画的使用的更多相关文章

  1. IOS开发系列 --- 核心动画

    原始地址:http://www.cnblogs.com/kenshincui/p/3972100.html 概览 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥i ...

  2. iOS开发之核心动画(Core Animation)

    1.概述 Core Animation是一组非常强大的动画处理API,使用它能做出非常炫丽的动画效果,而且往往是事半功倍,使用它需要先添加QuartzCore.framework和引入对应的框架< ...

  3. iOS开发之各种动画各种页面切面效果

    因工作原因,有段时间没发表博客了,今天就发表篇博客给大家带来一些干货,切勿错过哦.今天所介绍的主题是关于动画的,在之前的博客中也有用到动画的地方,今天就好好的总结一下iOS开发中常用的动画.说道动画其 ...

  4. iOS开发 QQ粘性动画效果

    QQ(iOS)客户端的粘性动画效果 时间 2016-02-17 16:50:00  博客园精华区 原文  http://www.cnblogs.com/ziyi--caolu/p/5195615.ht ...

  5. 【转】iOS开发之各种动画各种页面切面效果

    原文: http://www.cnblogs.com/ludashi/p/4160208.html?utm_source=tuicool 因工作原因,有段时间没发表博客了,今天就发表篇博客给大家带来一 ...

  6. Android游戏开发研究帧动画实现

     1.动画的原则框架        帧的动画帧的动画顾名思义,画就是帧动画. 帧动画和我们小时候看的动画片的原理是一样的,在同样区域高速切换图片给人们呈现一种视觉的假象感觉像是在播放动画,事实上只 ...

  7. iOS开发基础-序列帧动画之Tom猫

    新建一个Single View Application,向该工程中导入Tom猫的图片资源,本示例演示Tom猫喝牛奶的动作.图片的名字为 drink_00.jpg.drink_01.jpg.....dr ...

  8. 【iOS开发】---- UIView动画

      iOS 动画UIView动画 原文:http://www.cocoachina.com/bbs/read.php?tid=110168 1.概述 UIKit直接将动画集成到UIView类中,实现简 ...

  9. iOS 开发--转场动画

    "用过格瓦拉电影,或者其他app可能都知道,一种点击按钮用放大效果实现转场的动画现在很流行,效果大致如下:" 本文主讲SWIFT版,OC版在后面会留下Demo下载 在iOS中,在同 ...

随机推荐

  1. PHP-流的概念与详细用法

    Stream是PHP开发里最容易被忽视的函数系列(SPL系列,Stream系列,pack函数,封装协议)之一,但其是个很有用也很重要的函数.Stream可以翻译为“流”,在Java里,流是一个很重要的 ...

  2. axure rp 8.0

    授权人:University of Science and Technology of China (CLASSROOM) 授权密钥:DTXRAnPn1P65Rt0xB4eTQ+4bF5IUF0gu0 ...

  3. .net mvc 站点自带简易SSL加密传输 Word报告自动生成(例如 导出数据库结构) 微信小程序:动画(Animation) SignalR 设计理念(一) ASP.NET -- WebForm -- ViewState ASP.NET -- 一般处理程序ashx 常用到的一些js方法,记录一下 CryptoJS与C#AES加解密互转

    .net mvc 站点自带简易SSL加密传输   因项目需要,传输数据需要加密,因此有了一些经验,现简易抽出来分享! 请求:前端cryptojs用rsa/aes 或 rsa/des加密,后端.net ...

  4. C++一次指针问题和解决(char指针乱码)

    问题始末 struct NameGroup { char* Name1; char* Name2; }; NameGroup A() { NameGroup result; //From other ...

  5. Atitit.软件gui按钮and面板---os区-----linux windows搜索文件 文件夹

    Atitit.软件gui按钮and面板---os区-----搜索文件 1. Find 1 2. 寻找目录 1 3. 2. Locate// everything 1 4. 3. Whereis (wi ...

  6. Atitit.ALT+TAB没反应车and 点击任务栏程序闪烁但是不能切换

    Atitit.ALT+TAB没反应车and 点击任务栏程序闪烁但是不能切换 1. 可能你的Alt+Tab键被别人禁用了,试下下面的方法: 1 2. 为什么要禁用Alt+Tab 1 3. ALT+TAB ...

  7. Nginx的Rewrite正则表达式,匹配非某单词

    Nginx的Rewrite正则表达式,匹配非某单词 由于要rewrite一个地址从 /mag/xx/xxx/ -> /m/xxx 但原先 /mag/xx/more/ 要保留 这就得写一个比较奇特 ...

  8. iOS开发-iOS 10 由于权限问题导致崩溃的那些坑

     iOS开发-iOS 10 由于权限问题导致崩溃的那些坑 6月份的WWDC大会结束有一段时间了,相信很多开发者也是在努力工作的闲时用着Xcode8 Beta版学习着新的特性吧. 使用Xcode8写自己 ...

  9. 常见编码和编码头BOM

    ANSI(American National Standards Institute,美国国家标准学会)ANSI编码标准是指所有从基本ASCII码基础上发展起来的编码标准,比如扩展的ASCII码(12 ...

  10. hadoop3: mkdir: cannot create directory `/usr/local/hadoop/bin/../logs’: Permission denied

    1.hadoop3: mkdir: cannot create directory `/usr/local/hadoop/bin/../logs': Permission denied把所有Datan ...