一天一工程总结系列-7.2
2015
7.2
一天一工程总结系列
对各类优秀工程的剖析和拙见。有些胡言乱语还请作者谅解。
VBFPopFlatButton
1.执行多次的单例
#define AGEColorImplement(COLOR_NAME,RED,GREEN,BLUE) \
+ (UIColor *)COLOR_NAME{ \
static UIColor* COLOR_NAME##_color; \
static dispatch_once_t COLOR_NAME##_onceToken; \
dispatch_once(&COLOR_NAME##_onceToken, ^{ \
COLOR_NAME##_color = [UIColor colorWithRed:RED green:GREEN blue:BLUE alpha:1.0]; \
NSLog(@"1");\
}); \
return COLOR_NAME##_color; \
}\
有个牛人对dispatch_once的代码级解析:http://blog.csdn.net/uxyheaven/article/details/24735237
这样的写法来自http://blog.alexedge.co.uk/speeding-up-uicolor-categories/
2.VBFPopFlatButton
继承自UIButton。
VBFPopFlatButton有一个NSInteger类型的枚举FlatButtonType,对应Demo里的各种按钮样式。
另外含有三个VBFDoubleSegment的实例变量,firstSegment,secondSegment,thirdSegment.
关键函数
-(void)animateToTyle:(FlatButtonType)finalTyle
{
[self.xxSegment moveToState:xxxx animated:self.animateToStartPosition];
[self addSpringRotationToLayer:self.topLine toValue:toValueTop];
POPSpringAnimation anim.toValue = @(toValue);
self.xxLine.transform = CATransform3DMakeRotation(toValueTop,,,);
[self.xxSegment movePositionToPoint:xxxOriginPoint animated:self.animateToStartPosition];
[self addSpringTranslationToLayer:self.topLine toValue:toPoint];
POPSpringAnimation anim.toValue = @(toValue);
self.xxLine.position = finalPosition
}
3.@interface VBFDoubleSegment:CALayer
有一个NSInteger类型的DoubleSegmentState枚举,每一个枚举对应一个按钮样式。
包含两个成员,topLine/bottomLine,两者均是CAShapeLayer的实例变量。这两个layer,用addsubLayer的方式加在VBFDoubleSegment上。
4.动画效果,由第三方类pop实现。
转载于:https://www.cnblogs.com/so-magic/p/4616674.html
一天一工程总结系列-7.2相关推荐
- 中国科学院计算机专业职称,2018年春季工程技术系列专业技术资格职称评审结束...
2018年春季工程技术系列专业技术资格职称评审结束 2018-06-01院人才交流中心 [字体:大 中 小] 语音播报 中国科学院工程技术系列专业技术资格春季评审会于5月26日至27日召开.共有161 ...
- 携程无线工程技术系列——从零打造携程无线持续交付平台 MCD 实践
作者简介:携程无线基础工程团队高级经理,负责无线交付平台和基础服务研发.十多年的互联网从业经验,曾供职于 eBay 等互联网公司,研发经验丰富. 导语:携程 App 几乎承载着整个集团的所有业务形态, ...
- 水利类专业怎么应用计算机,水利水电工程专业系列教材·计算机应用技术
水利水电工程专业系列教材·计算机应用技术 语音 编辑 锁定 讨论 上传视频 <水利水电工程专业系列教材·计算机应用技术>是2003年中央广播电视大学出版社出版的图书,作者是陆桂明.[3] ...
- 模块化工程构建系列(一)
本系列主要解决的问题:针对一个功能庞大的企业应用 + 应用面对不同区域的众多客户,如何做好应用的多版本管理.各区域线上模块的快速更新及系统的稳定性保障,可以采取对应用进行核心模块按模块化方式进行管理. ...
- flutter release 版本 调试_腾讯课堂Flutter工程实践系列——接入篇
前言 课堂目前的技术栈是React Native + Hybird + Native,随着技术的演进多端融合的趋势越来越明显,而RN的弊端也突显出来,jsBridge性能不是最优,占用前端人力,定位问 ...
- MIPI摄像头工程=7系列FPGA + OV5640(MIPI) + 15 分钟 + VITIS
项目使用东西 硬件 Spartan-7 SP701 FPGA 7系列FPGA+电阻网络实现的MIPI接口 OV5640 MIPI接口 软件 AMD Vivado 2020 版本以上 AMD Vitis ...
- mysql中的正向工程_Hibernate系列之正向工程
作用:可以依据hibernate正向工程生成库表结构 spring-hibernate.xml文件中 1 2 3 4 5 6 ${hibernate.hbm2ddl.auto} 7 ${hiberna ...
- react手机机端css_react工程搭建系列之---移动端适配与antd-mobile高清适配方案
一.逻辑像素(css像素)与物理像素(设备像素) 机型 逻辑像素 物理像素 Scale Factor iphone 3GS 320 x 480 320 x 480 1x iphone 4 320 x ...
- java模型给泛型_【一天一个基础系列】- java之泛型篇
java 5以后,java引入了"参数化类型"的概念,允许程序在创建集合时指定集合元素的类型 java 7之前,如果使用带泛型的接口.类定义变量,那么调用构造器创建对象时构造器的后 ...
- [特征工程系列一] 论特征的重要性
满打满算,还有十天左右就要过年了,这些天大家或多或少都有点浮躁.反过来想,趁大家都懈怠的时候,正是学习的最佳时机.趁着这几天,也给自己加点码,去认真的再看一下特征工程.我给自己列了下面的这一份学习清单 ...
最新文章
- SAP PM 模块主要配置点
- docker 自定义网桥
- 文巾解题 13. 罗马数字转整数
- 实战SSM_O2O商铺_34【商品】商品编辑之Controller层的实现
- iOS 模糊化效果 ANBlurredImageView的使用
- 智能、弹性、易用:云时代的负载均衡之道
- epoll与fork
- IOCP编程小结(中)
- C程序设计(第四版)谭浩强著-学习笔记
- 《Photoshop Lightroom4 经典教程》目录—导读
- 把ts自动合并 下载网页视频并自动合成视频
- Zemax操作--9(全局坐标设定及使用方法)
- 科学计算机怎样开根号,电脑上的科学计算器怎么开根号(科学计算器开4次方根操作方法)...
- 解决Windows10 14393版本迅雷崩溃问题
- 中国山梨酸市场运营动态分析与前景方向预测报告2022-2028年
- python mysqldb insert_Python MySQLdb 插入数据
- 生活就像一盒巧克力,你永远不知道会尝到哪种滋味
- 用友远程命令执行漏洞并提权
- 从零开始的unity2017笔记【2D】(【二】角色动画)
- Dubbo跟Spring Cloud哪个更好用?“微服务”第二代又赢了!