POP实践 - 01

前言: 哇喔从题目是不是看出了什么端倪, 没错我打算要造好多好多POP小轮子, 今天是轮子01 , 演示图片我也是挑了好久呢, 博主真是用心呢, 中午空闲时间发出来, 没午睡好困, 扯得有点多~

小轮子01的用途, 可以做提示窗, 也在很多直播的App中比较常见, 尾巴会放出实例工程.

创建继承于UIView的XTPopingView 暂时没做更多功能, 可以实现 下-下 上-下 两种 来看看如何实现吧

声明: 使用Facebook POP了.

1.初始化
- (instancetype)initWithFrame:(CGRect)frame
{

self = [super initWithFrame:frame];
if (self) {
self.backgroundColor = [[UIColor blackColor] colorWithAlphaComponent:0.3];
[self addSubview:self.flyView];
UITapGestureRecognizer *tapGes = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapClickAction)];
[self addGestureRecognizer:tapGes];
}
return self;
}
- (UIView *)flyView
{
if (!_flyView) {
_flyView = [[UIView alloc] init];
}
return _flyView;
}
2. 开始视图
- (void)startFly:(FlyType)type
{
switch (type) {
case FlyTypeUToD:
{
_flyView.frame = CGRectMake(SCREEN_WIDTH_XT / 2 - self.fly_w / 2, -self.fly_h, self.fly_w, self.fly_h);
}
break;
case FlyTypeDToD:
{
_flyView.frame = CGRectMake(SCREEN_WIDTH_XT / 2 - self.fly_w / 2, SCREEN_HEIGHT_XT + self.fly_h, self.fly_w, self.fly_h);
}
default:
break;
}
_flyView.backgroundColor = [UIColor purpleColor];
POPSpringAnimation *anim = [POPSpringAnimation animationWithPropertyNamed:kPOPViewCenter];
anim.toValue = [NSValue valueWithCGPoint:self.center];
// 速度
anim.springSpeed = 5;
// 弹力--晃动的幅度 (springSpeed速度)
anim.springBounciness = 10.0f;
[_flyView pop_addAnimation:anim forKey:@"animationShow"];
}
3. 移除视图
- (void)tapClickAction
{
POPSpringAnimation *anim = [POPSpringAnimation animationWithPropertyNamed:kPOPViewCenter];
anim.toValue = [NSValue valueWithCGPoint:CGPointMake(self.center.x, SCREEN_HEIGHT_XT + self.fly_h)];
[_flyView pop_addAnimation:anim forKey:@"animationRemove"];
anim.springSpeed = 5;
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
[self removeFromSuperview];
});
}
—————————————

走心文章, 值得点赞 —文/夏天然后

实例工程 - 放在我的动画收集中

时间: 2024-10-04 16:40:18

POP实践 - 01的相关文章

Istio技术与实践01: 源码解析之Pilot多云平台服务发现机制

服务模型 首先,Istio作为一个(微)服务治理的平台,和其他的微服务模型一样也提供了Service,ServiceInstance这样抽象服务模型.如Service的定义中所表达的,一个服务有一个全域名,可以有一个或多个侦听端口. type Service struct { // Hostname of the service, e.g. "catalog.mystore.com" Hostname Hostname `json:"hostname"` Addre

阿里百秀项目实践---01项目介绍

01项目介绍 核心目标 了解 Web 开发过程(历史) 掌握基本的动态网站开发 培养 B/S 架构应用开发思维 锻炼 JavaScript jQuery AJAX 项目预览演示 一个自媒体信息发布平台 管理员(编辑)通过网站后台管理界面管理(发布.维护)自媒体内容 用户登录 登录界面可以根据是否填写表单内容拒绝登录操作 管理员可以通过用户名和密码登录到后台 内容管理 管理员可以通过管理后台查看全部内容 管理员可以通过管理后台增加内容 管理员可以通过管理后台删除内容 管理员可以通过管理后台修改内容

在ASP.NET MVC中使用Knockout实践01,绑定Json对象

本篇体验在ASP.NET MVC下使用Knockout,将使用EF Code First创建数据库.最后让Knockout绑定一个Json对象. 创建一个领域模型. namespace MvcApplication3.Models { public class Product { public int Id { get; set; } public string Name { get; set; } public string Category { get; set; } public deci

ASP.NET5实践01:Web项目创建、结构概述、程序运行、发布部署

1.项目创建 ASP.NET5项目模板有三种: 新建项目: 选择模板: 2.结构概述 References对应配置是project.json中: "frameworks": { "dnx451": { }, "dnxcore50": { } }, ASP.NET5开发时支持多版本的clr共存,但运行时是使用其中一种. dnxcore50是跨平台.模块化的coreclr.它有多种,如:dnx-coreclr-win-*,dnx-coreclr-li

使用Axure RP原型设计实践01,使用概述

首先认识Axure RP Pro 7.0软件的默认界面布局.最上面的是工具栏区域,左侧上方的是网站地图区域(sitemap),左侧中部的是部件区域(Widgets),左侧下方的是模板区域(Masters),中间上方的是页面区域,中间下方的是页面设置区域,右侧上方是部件属性区域,右侧下方是动态面板区域. 依次点击"Publish","Preview"或直接按快捷键F5或直接按工具栏里的预览按钮,就可以在浏览器中对当前项目进行预览. 依次点击"Publish&

使用Bootstrap 3开发响应式网站实践01,前期准备、导航区域等

本篇主要包括: □ 前期准备□ 引入Bootstrap,jQuey文件等□ 搭建页面主体结构□ 导航区域 □ 前期准备 →使用Visual Studio 2012创建一个空的ASP.NET网站→把下载下来的Bootstrap 3中的css,fonts,js文件夹拷贝到网站根目录下→在网站根目录下创建images文件夹,用来存放所有的图片→使用NuGet安装最新版的jQuery→在网站根目录下创建index.html文件 □ 引入Bootstrap,jQuey文件等 →在css文件夹下创建site

Docker 实践 01 Docker安装

ubuntu安装Docker 1.安装curl工具 copy #apt-get update   #apt-get install curl 2.通过脚本安装docker copy #curl -fsSL get.docker.com -o get-docker.sh   #sh get-docker.sh --mirror Aliyun 3.配置镜像加速器 #curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s htt

Ajax+Node.js前后端交互最佳入门实践(01)

1.Node.js简介 1.0.前后台数据交互流程 在web开发中,我们经常听说前端和后台,他们分别是做什么具体工作的呢?他们怎样交互的呢?我们得把这些基础的问题都搞明白了,才有一个大致的学习方向,首先,我们来看一张生活中几乎每个人都经历过的一个场景,如下图: 当你去餐馆吃饭的时候,坐下后服务员会带着一个菜单过来,问你需要点什么菜,这个时候你浏览了菜单上的菜,把想吃的菜告诉服务员,服务员把你点的菜拿到后台,后台根据你点的菜名,逐一完成,菜做完后叫服务员给你上菜,就这么一个场景其实和我们web开发

课堂实践01

这周四老师给我们讲了很多东西,告诉我们今后如何更好的工作学习.现在苦一点以后轻松一点.教学计划等也了解了大概.后两节课老师给我们布置了一道编程题如下: 题目:返回一个整数数组中最大子数组的和. 要求: 输入一个整形数组,数组里有正数也有负数.        数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. 求所有子数组的和的最大       值.要  求时间复杂度为O(n). 看到题目之后就开始提炼其中的关键字:整形数组,可正可负,一个或者多个子数组求和,获取和的最大值并输出和,