ios 自定义加载动画效果
在开发过程中,可能会遇到各种不同的场景需要等待加载成功后才能显示数据。以下是自定义的一个动画加载view效果。
在UIViewController的中加载等到效果,如下
- (void)viewDidLoad {
[super viewDidLoad]; //将view背景颜色变更为黄色
self.view.backgroundColor = [UIColor yellowColor]; //在self.view上加载提示框
[[BIDActivityNote sharedInstance] AddActivityView:self.view]; //延时3分钟后移除提示框
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)( * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
[[BIDActivityNote sharedInstance] RemoveActivityView];
});
}
BIDActivityNote.h 实现代码
//
// BIDActivityNote.h
// MobileShop
//
// Created by eJiupi on 15-7-23.
// Copyright (c) 2014年 xujinzhong. All rights reserved.
// #import <Foundation/Foundation.h> @interface BIDActivityNote : NSObject + (BIDActivityNote*)sharedInstance; - (void)AddActivityView:(UIView*)subView; - (void)RemoveActivityView; @end
BIDActivityNote.m 代码实现效果:
//
// BIDActivityNote.m
// MobileShop
//
// Created by eJiupi on 15-7-23.
// Copyright (c) 2014年 xujinzhong. All rights reserved.
// #import "BIDActivityNote.h" @interface BIDActivityNote () @property (strong, nonatomic) UIView *subView;
@property (strong, nonatomic) UIActivityIndicatorView *act; @end @implementation BIDActivityNote + (BIDActivityNote*)sharedInstance
{
static BIDActivityNote* instance = nil;
if (instance == nil)
{
instance = [[BIDActivityNote alloc] init];
}
return instance;
} - (id)init
{
self = [super init];
if (self)
{
NSInteger w = [UIScreen mainScreen].bounds.size.width;
NSInteger h = [UIScreen mainScreen].bounds.size.height;
self.subView = [[UIView alloc] initWithFrame:CGRectMake(, , w, h)];
self.subView.backgroundColor = [UIColor colorWithRed: green: blue: alpha:0.5]; self.act = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
//只能设置中心,不能设置大小
self.act.center = CGPointMake(w/.f, h/.f);
//设置活动指示器的颜色
self.act.color=[UIColor whiteColor]; [self.act startAnimating]; // 开始旋转
[self.act stopAnimating]; // 结束旋转
//[self.act setHidesWhenStopped:YES]; //当旋转结束时隐藏 [self.subView addSubview:self.act];
}
return self;
} - (void)AddActivityView:(UIView*)subView
{
//启动
[self.act startAnimating];
[subView addSubview:self.subView]; //实现动画效果
self.subView.transform = CGAffineTransformScale(self.subView.transform, , );
[UIView animateWithDuration: animations:^{
self.subView.transform = CGAffineTransformIdentity;
}];
} - (void)RemoveActivityView
{
[UIView animateWithDuration:0.7 animations:^{
self.subView.transform = CGAffineTransformScale(self.subView.transform, , );
} completion:^(BOOL bfinished){
if (bfinished) {
//停止
[self.act stopAnimating];
[self.subView removeFromSuperview];
}
}];
} @end
ios 自定义加载动画效果的更多相关文章
- iOS - 落叶加载动画效果
代码下载地址:https://github.com/nLoser/LeafLoadingView 效果: 说明:效果是在网上看到的,并且自己按照效果自己实现,树叶使用CAEmitterLayer做的, ...
- html自定义加载动画
整体代码 HTML 实现自定义加载动画,话不多说如下代码所示: <!DOCTYPE html> <html lang="en"> <head> ...
- CSS3实现的图片加载动画效果
来源:GBin1.com 使用CSS3实现的不同图片加载动画效果,支持响应式,非常适合针对瀑布流布局图片动态加载特效进行增强! HTML <ul class="grid effect- ...
- 加载动画效果 HTML+ CSS
加载动画效果 写在前面 在无限的时间的河流里,人生仅仅是微小又微小的波浪.--郭小川 实现效果 实现原理 通过2个伪元素来设置3条颜色边框 通过定位将3个圆弧边框层叠再一起,再通过旋转实现一个圆的效果 ...
- iOS帅气加载动画、通知视图、红包助手、引导页、导航栏、朋友圈、小游戏等效果源码
iOS精选源码 如丝般顺滑的微信朋友圈(点赞,评论,图文混排表情,... 动态菜单第三版本:动态项,自适应方向 仿appstore首页滚动效果 iOS 透明导航栏方案 TransparentNavig ...
- 【动画消消乐】HTML+CSS 自定义加载动画:清新折叠方块效果 063(附源码及原理详解)
前言 Hello!小伙伴! 非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出- 自我介绍ଘ(੭ˊᵕˋ)੭ 昵称:海轰 标签:程序猿|C++选手|学生 简介:因C语言结识编程,随后转入计算机专 ...
- iOS 实现加载转圈效果
1.思路: 新建一个view,添加shape,给予一个动画实现. 2.效果图: 效果1: 效果2: gif有点卡,代码运行不会这样. 3.源码(整个类放进来的) 效果1源码: // // YJDown ...
- CSS动画实例:Loading加载动画效果(一)
一些网站或者APP在加载新东西的时候,往往会给出一个好看有趣的Loading图,大部分的Loading样式都可以使用CSS3制作出来,它不仅比直接使用gif图简单方便,还能节省加载时间和空间.下面介绍 ...
- CSS动画实例:Loading加载动画效果(三)
3.小圆型Loading 这类Loading动画的基本思想是:在呈现容器中定义1个或多个子层,再对每个子层进行样式定义,使得其均显示为一个实心圆形,最后编写关键帧动画控制,使得各个实心圆或者大小发生改 ...
随机推荐
- JNI之JAVA调用C++接口
1.JNI定义(来自百度百科) JNI是Java Native Interface的缩写,中文为JAVA本地调用.从Java1.1开始,Java Native Interface(JNI)标准成为ja ...
- bzoj 4398 福慧双修——二进制分组
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4398 如果枚举1号点走哪些点出去,就从那些点出发跑多源最短路即可.最短路不会重复经过一条边. ...
- C/C++获取Linux系统CPU和内存及硬盘使用情况
需求分析: 不使用Top df free 等命令,利用C/C++获取Linux系统CPU和内存及硬盘使用情况 实现: //通过获取/proc/stat (CPU)和/proc/meminfo(内存 ...
- mysql跨表更新示例
一.在同一个表中冗余存储记录之间的关系(组织机构树),查询时需要根据冗余字段进行关联查询 例如,下面的示例,用户表中有个字段friend标记其朋友关系,要求找出id=2及他的朋友(父节点) mysql ...
- Ubuntu 安装杀毒软件防火墙
1.打开终端 2.输入sudo apt-get install clamtk 3.按照提示安装 4.安装完成后,输入clamtk 即可. 卸载方法: 1.打开终端 2.输入sudo apt-get a ...
- org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'bireportSqlSessionFactory' defined in URL
报错如下: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'birepo ...
- sqlserver 拷贝同步多个表数据到另一张表
--/****** Script for SelectTopNRows command from SSMS ******/ Insert into [DMSBusiness].[dbo].[Busin ...
- Eclipse中建立自己的类库,给不同的工程使用
win7 进入服务 开始 运行 services.msc 在多个工程当中,可能使用到相同的jar包,这时,如果我们建立一个自己的类库,该类库中存放着所有工程均需要的jar包,就可以免去重复导入的麻烦. ...
- 验证网站SiteMap的工具
验证网站SiteMap的在线工具 http://www.xmlvalidation.com/ 在SiteMap文件中,不能直接这样写url "http://www.obriensplast ...
- POJ - 3126 Prime Path 素数筛选+BFS
Prime Path The ministers of the cabinet were quite upset by the message from the Chief of Security s ...