iphone弹出窗口效果的制作(Core animation, CALayer)
效果类似人人网微薄客户端的弹出效果
static CGFloat kTransitionDuration = 0.3;
- (void)initView
{
UIWindow *window = [UIApplication sharedApplication].keyWindow;
if (!window)
{
window = [[UIApplication sharedApplication].windows objectAtIndex:];
} _backgroundView = [[UIView alloc] initWithFrame:window.bounds]; // 这个可以使背景变成灰色,类似UIAlertView弹出的效果
_backgroundView.backgroundColor = [[UIColor blackColor] colorWithAlphaComponent:0.35]; // 叠加到window上,这样他的父窗口就无法再响应点击消息了.
[window addSubview:_backgroundView]; self.frame = CGRectMake(, , , );
[_backgroundView addSubview:self];
self.backgroundColor = [UIColor orangeColor]; // 一系列动画效果, 先放大0.1, 在缩小0.1,随后还原原始大小,达到反弹效果
self.transform = CGAffineTransformScale(CGAffineTransformIdentity, 0.05, 0.05);
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:kTransitionDuration/1.5];
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(bounceAnimationStopped)];
self.transform = CGAffineTransformScale(CGAffineTransformIdentity, 1.1, 1.1);
[UIView commitAnimations];
} - (void)bounceAnimationStopped {
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:kTransitionDuration/];
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(bounce2AnimationStopped)];
self.transform = CGAffineTransformScale(CGAffineTransformIdentity, 0.9, 0.9);
[UIView commitAnimations];
} - (void)bounce2AnimationStopped {
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:kTransitionDuration/];
self.transform = CGAffineTransformScale(CGAffineTransformIdentity, 1.0, 1.0);
[UIView commitAnimations];
}
如果想实现圆角的视图:
CALayer *subLayer = [CALayer layer];
subLayer.backgroundColor = [UIColor whiteColor].CGColor;
subLayer.shadowOffset = CGSizeMake(, );
subLayer.shadowRadius = 5.0;
subLayer.shadowColor = [UIColor blackColor].CGColor;
subLayer.shadowOpacity = 0.8;
subLayer.frame = CGRectMake(, , , );
subLayer.cornerRadius = ;
subLayer.borderColor = [[UIColor blackColor] colorWithAlphaComponent:0.75].CGColor;
subLayer.borderWidth = ;
[self.layer addSublayer:subLayer];
// 如果在层上添加的视图如图片比父视图大,应该试用maskToBounds = YES;
iphone弹出窗口效果的制作(Core animation, CALayer)的更多相关文章
- odoo-开发笔记 列表视图 增加记录弹出窗口效果
editable="bottom" 增加该标签的效果是,添加记录的时候,在原列表视图上一行一行添加; 去掉该标签之后,那么增加新记录的时候,会以弹出窗口的方式实现. 如果弹出的窗口 ...
- C#实现右下角弹出窗口效果
/// <summary> /// 窗体动画函数 注意:要引用System.Runtime.InteropServices; /// </summary> /// <pa ...
- C# winform 窗体从右下角向上弹出窗口效果
参考自 http://blog.csdn.net/yilan8002/article/details/7197981 /// <summary> /// 窗体动画函数 注意:要引用Syst ...
- Bootboxjs快速制作Bootstrap的弹出框效果
Bootboxjs是一个简单的js库,简单快捷帮你制作一个Bootstrap的弹出框效果. 一.简介 bootbox.js是一个小的JavaScript库,它帮助您在使用bootstrap框架的时候快 ...
- 使用movable-view制作可拖拽的微信小程序弹出层效果。
仿了潮汐睡眠小程序的代码.[如果有侵权联系删除 最近做的项目有个弹出层效果,类似音乐播放器那种.按照普通的做了一般感觉交互不是很优雅,设计妹子把潮汐睡眠的弹层给我看了看,感觉做的挺好,于是乘着有空仿照 ...
- [转]js来弹出窗口的详细说明
1.警告对话框 <script> alert("警告文字") </script> 2.确认对话框 <script> confirm(" ...
- 在HTML网页中设置弹出窗口的办法
[1.最基本的弹出窗口代码] 其实代码非常简单: <SCRIPT LANGUAGE="javascript"> <!-- window.open ('page.h ...
- JS弹出窗口代码大全(详细整理)
1.弹启一个全屏窗口 复制代码代码如下: <html> <body http://www.jb51.net','脚本之家','fullscreen');">; < ...
- EPUB弹出窗口式脚注
网上搜到一些国学典籍的EPUB版,虽有古人的注解,但正文和注解混排在一起,当我只想迅速读正文的时候比较碍眼.于是研究了一下 EPUB3 中有关脚注(footnote)的规格定义,写了一个 Python ...
随机推荐
- css样式冲突问题练习例子
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " http://www.w3.org ...
- Tensorboard on Server
ssh -L 6006:localhost:5001 username@ml.cs.tsinghua.edu.cn -p 4513 6006是本地端口 5001是远程tensorboard绑定的端口
- SAP 物料移动类型查询表
Goods movement w/o referenceB Goods movement for purchase orderF Goods movement for production order ...
- Linux命令_搜索文件
一.用which命令查找可执行文件的绝对路径 which命令用来查找PATH环境变量中出现的路径下的可执行文件. 二.用whereis命令查找文件 whereis命令通过预先生成的一个文件列表库查找与 ...
- 第三百五十七节,Python分布式爬虫打造搜索引擎Scrapy精讲—利用开源的scrapy-redis编写分布式爬虫代码
第三百五十七节,Python分布式爬虫打造搜索引擎Scrapy精讲—利用开源的scrapy-redis编写分布式爬虫代码 scrapy-redis是一个可以scrapy结合redis搭建分布式爬虫的开 ...
- Git -- 工作区 和 暂存区
Git和其他版本控制系统如SVN的一个不同之处就是有暂存区的概念. 先来看名词解释. 工作区(Working Directory) 就是你在电脑里能看到的目录,比如我的learngit文件夹就是一个工 ...
- Android Handler机制 (一个Thead中可以建立多个Hander,通过msg.target保证MessageQueue中的每个msg交由发送message的handler进行处理 ,但是 每个线程中最多只有一个Looper,肯定也就一个MessageQuque)
转载自http://blog.csdn.net/stonecao/article/details/6417364 在android中提供了一种异步回调机制Handler,使用它,我们可以在完成一个很长 ...
- Qt SDK的x64与x86版本号以及与VS的配合
今天遇到一个奇怪的问题.我用Qt的64位版本号,动态载入一个SDK的dll,不管怎样都是载入失败.QLibrary也没什么有价值的信息. 实在没辙,就用VS2013写了个小程序,用LoadLibrar ...
- C# 将DateTime.Now.DayOfWeek的值转为中文星期
1. 如果常规使用DateTime.Now.DayOfWeek则得到是英文,如果加ToString后再加上相关参数(“G”.“g”.“X”.“x”.“F”.“f”.“D”或“d”),则还会有所变化. ...
- JS jQuery json日期格式问题的办法
原生JS:Date对象详细参考 Date对象:基于1970年1月1日(世界标准时间)起的毫秒数 本文参考MDN做的详细整理,方便大家参考MDN 构造函数: new Date(); 依据系统设置的当前时 ...