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 ...
随机推荐
- knockout.js模板绑定之利用Underscore.js模板引擎示例
View代码 <h1>People</h1> <ul data-bind="template: { name: 'peopleList' }"> ...
- Java编程的逻辑 (47) - 堆和PriorityQueue的应用
本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http:/ ...
- destoon 添加一个新的模块
根目录rename,中config.inc.php文件/module/rename下两个文件,my.inc.php ,rename.class.php/module/rename/admin/三个文件 ...
- .Net MVC 自定义Action类型,XmlAction,ImageAction等
MVC开发的时候,难免会用到XML格式数据,如果将XML数据当作字符串直接返回给前台,其实这不是真正意义上的xmL,你可以看到ContentType是text/html而非XML类型,这往往会造成前端 ...
- nginx 4层tcp代理获取真实ip
举个例子,Nginx 中的代理配置假如是这样配置的: location / { proxy_http_version 1.1; proxy_set_header X-Real-IP $remote_a ...
- cv_bridge中的编码模式与实现
image_encodings.cpp文件是关于图像编码模式的源文件,其中规定了RGB的图像以及深度图的编码模式 该编码文件image_encodings.cpp所依赖的头文件图 命令空间 sens ...
- MongoDB 比较适用哪些业务场景?
在云栖社区上发起了一个 MongoDB 使用场景及运维管理问题交流探讨的技术话题,有近5000人关注了该话题讨论,这里就 MongoDB 的使用场景做个简单的总结,谈谈什么场景该用 MongoDB ...
- Sword STL仿函数示例
一元函数 unary_function .有返回值. .只有一个参数. template <class Arg, class Result> struct unary_function { ...
- 链接克隆、完整克隆 vmware 快照和克隆
多重快照功能简介: 快照的含义:对某一个特定文件系统在某一个特定时间内的一个具有只读属性的镜像.当你需要重复的返回到某一系统状态,又不想创建多个虚拟机的时候,就可以使用快照功能.其实,快照并不是VMw ...
- 用ARM实现音乐电子相册
(前段时间在做嵌入式的课程设计,特将学习心得整理如下) 一.开发工具及环境介绍 1.ARM处理器 ARM处理器是一个32位元精简指令集(RISC)处理器架构,其广泛地使用在许多嵌入式系统设计. ARM ...