//
// BowenView.h
// IOS_0302_下拉刷新
//
// Created by ma c on 16/3/2.
// Copyright © 2016年 博文科技. All rights reserved.
// #import <UIKit/UIKit.h> @interface BowenView : UIView //要把loading界面加载到那个界面
+ (void)showBowenViewFromSuperView:(UIView *)superView;
//要把loading界面从哪个界面移除
+ (void)removeBowenViewFromSuperView:(UIView *)superView;
//要把loading界面加载到那个界面上(具体位置)
+ (void)showBowenViewFromSuperView:(UIView *)superView offSetY:(CGFloat)offSetY; @end //
// BowenView.m
// IOS_0302_下拉刷新
//
// Created by ma c on 16/3/2.
// Copyright © 2016年 博文科技. All rights reserved.
// #import "BowenView.h" @interface BowenView () //动态图
@property (nonatomic, strong) UIImageView *loadingImgView;
//提示文字
@property (nonatomic, strong) UILabel *lbl; @end @implementation BowenView - (instancetype)init
{
self = [super init];
if (self) {
[self addSubview:self.loadingImgView];
[self addSubview:self.lbl];
}
return self;
} - (UIImageView *)loadingImgView
{
if(!_loadingImgView){
_loadingImgView = [[UIImageView alloc] init];
_loadingImgView.frame = CGRectMake(, , , );
_loadingImgView.backgroundColor = [UIColor clearColor];
//动态图属性
_loadingImgView.animationImages = [self getImageArray];
_loadingImgView.animationDuration = 2.0;
_loadingImgView.animationRepeatCount = ;
}
return _loadingImgView;
} - (UILabel *)lbl
{
if(!_lbl){
_lbl = [[UILabel alloc] init];
_lbl.frame = CGRectMake(, , , );
_lbl.text = @"正在加载...";
_lbl.font = [UIFont systemFontOfSize:];
_lbl.textColor = [UIColor darkGrayColor];
_lbl.textAlignment = NSTextAlignmentCenter;
}
return _lbl;
}
//获取图片数组
- (NSArray *)getImageArray
{
NSMutableArray *imgArray = [NSMutableArray array];
NSMutableArray *imgNameArr = [NSMutableArray array]; for (int i=; i<; i++) { NSString *imgName = [NSString stringWithFormat:@"loading_animate_%02d",i];
[imgArray addObject:imgName];
} for (int i = ; i < ; i ++) {
UIImage *image = [UIImage imageNamed:[imgArray objectAtIndex:i]];
[imgNameArr addObject:image];
}
return imgNameArr; } //要把loading界面加载到那个界面
+ (void)showBowenViewFromSuperView:(UIView *)superView
{
[self showBowenViewFromSuperView:superView offSetY:];
}
//要把loading界面从哪个界面移除
+ (void)removeBowenViewFromSuperView:(UIView *)superView
{
//在父视图的【所有子视图数组中】查找
for (UIView *itemView in superView.subviews) {
if ([itemView isKindOfClass:[BowenView class]]) {
[itemView removeFromSuperview];
}
}
}
//要把loading界面加载到那个界面上(具体位置)
+ (void)showBowenViewFromSuperView:(UIView *)superView offSetY:(CGFloat)offSetY
{
BowenView *loadingView = [[BowenView alloc] init];
loadingView.frame = CGRectMake([UIScreen mainScreen].bounds.size.width/ - , + offSetY, , ); //判断superView上是否已经存在一个BowenView,如果已经存在,先删除,在加载新的View
[self removeBowenViewFromSuperView:superView];
[superView addSubview:loadingView]; //让动态图动起来
[loadingView.loadingImgView startAnimating]; } @end

IOS-加载动态图(gif)的更多相关文章

  1. iOS加载启动图的时候隐藏statusbar + 指定启动图显示多少秒

    只需需要在info.plist中加入Status bar is initially hidden 设置为YES 补充一下,现在手机越来越快,在6+下面启动图一闪而过,而美工童鞋辛辛苦苦做的图就看不到鸟 ...

  2. iOS 加载动态库报错问题

    dyld: Library not loaded: @rpath Referenced from: Reason: no suitable image found.  Did find: 要么使用静态 ...

  3. Unity使用脚本进行批量动态加载贴图

    先描述一下我正在做的这个项目,是跑酷类音游. 那么跑酷类音游在绘制跑道上的时候,就要考虑不同的砖块显示问题.假设我有了一个节奏列表,那么我们怎么将不同的贴图贴到不同的砖块上去呢? 我花了好几个小时才搞 ...

  4. 简易仿ios菊花加载loading图

    原文链接:https://mp.weixin.qq.com/s/wBbQgOfr59wntNK9ZJ5iRw 项目中经常会用到加载数据的loading显示图,除了设计根据app自身设计的动画loadi ...

  5. 【转载】cocos2dx 中 Android NDK 加载动态库的问题

     原文地址:http://blog.csdn.net/sozell/article/details/10551309 cocos2dx 中 Android NDK 加载动态库的问题 闲聊 最近在接入各 ...

  6. Java类的加载の动态

    类的加载方式 静态加载类,是编译时刻加载 动态加载类,是运行时刻加载 new创建对象:是静态加载类,在编译时刻就需要加载所有的可能使用到的类.有一个类有问题(如不存在),都不能通过编译,会报错. Cl ...

  7. Android 高清加载巨图方案 拒绝压缩图片

    Android 高清加载巨图方案 拒绝压缩图片 转载请标明出处: http://blog.csdn.net/lmj623565791/article/details/49300989: 本文出自:[张 ...

  8. Linux下c函数dlopen实现加载动态库so文件代码举例

    dlopen()是一个强大的库函数.该函数将打开一个新库,并把它装入内存.该函数主要用来加载库中的符号,这些符号在编译的时候是不知道的.这种机制使得在系统中添加或者删除一个模块时,都不需要重新编译了. ...

  9. NGINX 加载动态模块(NGINX 1.9.11开始增加加载动态模块支持)

    NGINX 1.9.11开始增加加载动态模块支持,从此不再需要替换nginx文件即可增加第三方扩展.目前官方只有几个模块支持动态加载,第三方模块需要升级支持才可编译成模块. tinywan@tinyw ...

  10. LoadLibrary加载动态库失败

    [1]LoadLibrary加载动态库失败的可能原因以及解决方案: (1)dll动态库文件路径不对.此场景细分为以下几种情况: 1.1 文件路径的确错误.比如:本来欲加载的是A文件夹下的动态库a.dl ...

随机推荐

  1. debian flam3 源码

    https://packages.debian.org/source/jessie/flam3 Source Package: flam3 (3.0.1-3) Links for flam3 Debi ...

  2. debian flam3 依赖文件

    https://packages.debian.org/stable/graphics/flam3     package names   descriptions   source package ...

  3. Ajax 报错 500 (Internal Server Error)

    ==========error======={"readyState":4,"responseText":"<html><head& ...

  4. hdu6208 The Dominator of Strings

    地址: 题目: The Dominator of Strings Time Limit: 3000/3000 MS (Java/Others)    Memory Limit: 65535/32768 ...

  5. DataTable转换成IList

    //文章出处: http://www.cnblogs.com/hlxs/archive/2011/05/09/2087976.html DataTable转换成IList 在用C#作开发的时候经常要把 ...

  6. “凯易迅Calix”实习上机——求元音开头辅音结尾的子串

    题目要求: 对于一个输入的字符串(26个小写字母组成),求出他的所有子串中元音开头,辅音结尾的子串.在这所有的子串中,输出第一个和最后一个. 例如aab,共有子串a,aa,aab,ab,b:但是满足元 ...

  7. Vuejs开发环境搭建及热更新

    一.安装NPM 1.1最新稳定版本: npm install vue 二.命令行工具安装 国内速度慢,使用淘宝镜像: npm install -g cnpm --registry=https://re ...

  8. 【转】安装Vue.js的方法

    安装vue.js的方法   一.简介 Vue.js 是什么 Vue.js(读音 /vjuː/, 类似于 view) 是一套构建用户界面的 渐进式框架.与其他重量级框架不同的是,Vue 采用自底向上增量 ...

  9. Redis 数据结构-字符串源码分析

    相关文章 Redis 初探-安装与使用 Redis常用指令 本文将从以下几个部分进行介绍 1.前言 2.常用命令 3.字符串结构 4.字符串实现 5.命令是如果操作字符串的 前言 平时在使用 Redi ...

  10. 20145312 实验五《Java网络编程》

    20145312 实验五<Java网络编程> 一. 实验内容及要求 实验内容: 运行下载的TCP代码,结对进行,一人服务器,一人客户端: 利用加解密代码包,编译运行代码,一人加密,一人解密 ...