在开发过程中,可能会遇到各种不同的场景需要等待加载成功后才能显示数据。以下是自定义的一个动画加载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 自定义加载动画效果的更多相关文章

  1. iOS - 落叶加载动画效果

    代码下载地址:https://github.com/nLoser/LeafLoadingView 效果: 说明:效果是在网上看到的,并且自己按照效果自己实现,树叶使用CAEmitterLayer做的, ...

  2. html自定义加载动画

    整体代码 HTML 实现自定义加载动画,话不多说如下代码所示: <!DOCTYPE html> <html lang="en"> <head> ...

  3. CSS3实现的图片加载动画效果

    来源:GBin1.com 使用CSS3实现的不同图片加载动画效果,支持响应式,非常适合针对瀑布流布局图片动态加载特效进行增强! HTML <ul class="grid effect- ...

  4. 加载动画效果 HTML+ CSS

    加载动画效果 写在前面 在无限的时间的河流里,人生仅仅是微小又微小的波浪.--郭小川 实现效果 实现原理 通过2个伪元素来设置3条颜色边框 通过定位将3个圆弧边框层叠再一起,再通过旋转实现一个圆的效果 ...

  5. iOS帅气加载动画、通知视图、红包助手、引导页、导航栏、朋友圈、小游戏等效果源码

    iOS精选源码 如丝般顺滑的微信朋友圈(点赞,评论,图文混排表情,... 动态菜单第三版本:动态项,自适应方向 仿appstore首页滚动效果 iOS 透明导航栏方案 TransparentNavig ...

  6. 【动画消消乐】HTML+CSS 自定义加载动画:清新折叠方块效果 063(附源码及原理详解)

    前言 Hello!小伙伴! 非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出- 自我介绍ଘ(੭ˊᵕˋ)੭ 昵称:海轰 标签:程序猿|C++选手|学生 简介:因C语言结识编程,随后转入计算机专 ...

  7. iOS 实现加载转圈效果

    1.思路: 新建一个view,添加shape,给予一个动画实现. 2.效果图: 效果1: 效果2: gif有点卡,代码运行不会这样. 3.源码(整个类放进来的) 效果1源码: // // YJDown ...

  8. CSS动画实例:Loading加载动画效果(一)

    一些网站或者APP在加载新东西的时候,往往会给出一个好看有趣的Loading图,大部分的Loading样式都可以使用CSS3制作出来,它不仅比直接使用gif图简单方便,还能节省加载时间和空间.下面介绍 ...

  9. CSS动画实例:Loading加载动画效果(三)

    3.小圆型Loading 这类Loading动画的基本思想是:在呈现容器中定义1个或多个子层,再对每个子层进行样式定义,使得其均显示为一个实心圆形,最后编写关键帧动画控制,使得各个实心圆或者大小发生改 ...

随机推荐

  1. 解决向github提交代码不用输入帐号密码

    解决方案:方案一: 在你的用户目录下新建一个文本文件.git-credentials Windows:C:/Users/username Mac OS X: /Users/username Linux ...

  2. 关于使用quartz动态增删改定时任务

    1. 首先, 还是喜闻乐见的导包 <dependency> <groupId>org.springframework.boot</groupId> <arti ...

  3. CF-805C

    C. Find Amir time limit per test 1 second memory limit per test 256 megabytes input standard input o ...

  4. E - Jolly Jumpers

    E - Jolly Jumpers Time Limit:3000MS     Memory Limit:0KB     64bit IO Format:%lld & %llu Submit  ...

  5. 3.4-3.6 Hive Storage Format

    一.file format ORCFile在HDP 2:更好的压缩,更好的性能: https://zh.hortonworks.com/blog/orcfile-in-hdp-2-better-com ...

  6. Websocket 学习

    一.含义 WebSocket 是一种在单个TCP连接上进行全双工通讯的协议.   WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据.在WebSocket ...

  7. UVaLive 10859 Placing Lampposts (树形DP)

    题意:给定一个无向无环图,要在一些顶点上放灯使得每条边都能被照亮,问灯的最少数,并且被两盏灯照亮边数尽量多. 析:其实就是一个森林,由于是独立的,所以我们可以单独来看每棵树,dp[i][0] 表示不在 ...

  8. ASP.NET中的几种弹出框提示基本方法

    NET程序的开发过程中,常常需要和用户进行信息交互,对话框的出现将解决了这些问题,下面是本人对常用对话框使用的小结,希望对大家有所帮助 我们在.NET程序的开发过程中,常常需要和用户进行信息交互,比如 ...

  9. WPF后台通知前台事件(ViewModelBase记录)

    版本1: 定义:public class ModelBase : INotifyPropertyChanged { public event PropertyChangedEventHandler P ...

  10. 51nod 1021【区间DP】

    思路: dp[ i ] [ j ]代表取[ i ,j ]区间石子的最小值,然后dp[i][j]=min(dp[i][j],dp[i][k]+dp[k+1][j]+sum[j]-sum[i-1]); # ...