//
// 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. mysql数据库从删库到跑路之select单表查询

    一 介绍 本节内容: 查询语法 关键字的执行优先级 简单查询 单条件查询:WHERE 分组查询:GROUP BY HAVING 查询排序:ORDER BY 限制查询的记录数:LIMIT 使用聚合函数查 ...

  2. 【JXL】导出Excel

    基本设置 // File file = new File("d:\\writetest.xlsx");// WritableWorkbook wwb = Workbook.crea ...

  3. mycat 指定mycat节点

    mycat 指定节点: /*!mycat:dataNode=order1*/select seq_nextval('APPOINTMENT_NO'); 指定节点创建存储过程或建表: /*!mycat: ...

  4. HackerRank - candies 【贪心】

    HackerRank - candies [贪心] Description Alice is a kindergarten teacher. She wants to give some candie ...

  5. 用random模块实现验证码

    #! /usr/bin/env python3 import random checkcode = "" ## 全部为数字的验证码 # for i in range(4): # c ...

  6. nodejs做中间层,向后端取数据

    var  http=require('http'): http.get('http://baidu/dksapi/weiboLive/GetSquareLive?pagecount=1&pag ...

  7. 《阿里巴巴Java开发规约》插件使用

    通过Jetbrains官方仓库安装 1. 打开 Settings >> Plugins >> Browse repositories... 2. 在搜索框输入alibaba即可 ...

  8. Django学习笔记之Django ORM相关操作

    一般操作 详细请参考官方文档 必知必会13条 <> all(): 查询所有结果 <> filter(**kwargs): 它包含了与所给筛选条件相匹配的对象 <> ...

  9. Python面试题之Python生成器

    首先说明一下生成器也是迭代器,也有迭代器的那些优点. 那为什么要生成器呢?因为到目前为止都 不是你写的迭代器,都是别人定义好的.那如何自己去造一个迭代器呢?下面的内容就会给你答案. 想要自己造一个迭代 ...

  10. 高可用Mysql架构_Mycat集群部署(HAProxy + 两台Mycat+Mysql双主双从)

    既然大家都知道了Mysql分布式在大型网站架构中的作用,在这里就不再阐述.本片博客文章是基于我曾经搭建过的一个Mysql集群基础上实现的,实现过双主热备.读写分离.分库分表. 博客链接:http:// ...