在开发过程中,可能会遇到各种不同的场景需要等待加载成功后才能显示数据。以下是自定义的一个动画加载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. uart驱动框架分析(二)uart_add_one_port

    作者:lizuobin (百问网论坛答疑助手) 原文: https://blog.csdn.net/lizuobin2/article/details/51801183 (所用开发板:mini2440 ...

  2. 2019腾讯广告算法大赛 Rank23

    由于官方审核代码,代码将在2019年6月28号后开源 写在前面 这次腾讯的第三届广告算法大赛,是我第一次参加,取得了初赛与复赛均为23名的成绩,毕竟我只是初打比赛不久的小白.我想在此分享下我的基本解题 ...

  3. 基于粒子群优化的无约束50维Rosenbrock函数求解

    基于粒子群优化的无约束50维Rosenbrock函数求解 一.问题重述 无约束50维的Rosenbrock函数可以描述如下: 其中, 0 要求按PSO算法思想设计一个该问题的求解算法. Rosenbr ...

  4. intellj idea 使用

    1. 导入包快捷 Alt + Enter 2. 查看方法注释,点击进入源码即可,若想和eclipse一样鼠标停留即可出现注释提示,开启方法为: Preferences->Editor->G ...

  5. 技术胖Flutter第四季-19导航父子页面的跳转返回

    技术胖Flutter第四季-19导航父子页面的跳转返回 博客地址: https://jspang.com/post/flutter4.html#toc-010 onPressed是当前按下的时候,按下 ...

  6. python3 类 组合

    解决类与类之间代码冗余问题有两种解决方案: 第一 是继承,第二是组合 1:继承   描述的是类与类之间的也就是什么是什么的关系 2: 组合  描述的是类与类之间的关系,  是一种什么有什么的关系的,也 ...

  7. GcSpreadSheet自定义Tab键选择

    最开始的时候需要在GcSpreadSheet中按Tab在需要输入的cell中切换,在模板中定义Tab的切换规则:后来又有一个新的要求,因为在使用的时候会出现数据不平的情况,这个时候需要在标记中的不平数 ...

  8. CodeForces——Game with string(STL stack栈)

    Two people are playing a game with a string ss, consisting of lowercase latin letters. On a player's ...

  9. zepto+mui开发中的tap事件重复执行

    zepto.js和mui一起使用的时候,因为都有tap事件绑定tab事件后会多次触发还会报错,这时不引用zepto中的touch.js就可以了,只用mui的tap相关事件. $(function () ...

  10. XHTML学习笔记 Part2:核心元素

    1. <html>元素 <html xmlns="http://www.w3.org/1999/xhtml"> 仅有两个元素是<html>的直接 ...