知识点复习

课堂笔记(MJ)


知识点复习
 
1. 触摸事件&手势识别
 
1> 4个触摸事件,针对视图的
2> 6个手势识别
 
附加在某一个特定视图上的,其中需要注意轻扫手势通常会附加到根视图上。
 
以上两项内容都必须要掌握
 
3> 响应者链条,目的是为了让大家能够理解手势触摸事件的传递过程,一旦遇到需要拦截事件时,知道从何处下手。
 
响应者链条只需要理解“链条”的产生和事件传递的顺序即可。
 
 
2. Quartz2D绘图
 
学习的线路图,为什么要学习Quartz2D
 
1> 以图形方式,实时绘图的技术,可以高效的绘制简单图形,增加界面的表现
 
2> 核心动画 <- CALayer(负责UIView中的内容的) <- Quartz2D
 
Quartz2D是C语言的框架!根OC语法不同
 
Quartz2D是跨平台(MAC & iOS)的,大多数跨平台的技术都是C语言框架的。
GCD(多线程)
 
需要掌握的内容:
1> 理解上下文的概念
2> 理解并且创建简单的绘图路径
3> 能够完成直线、矩形、圆形、圆弧、图像、文本的绘制,可以辅助快速的提升UI界面的表现
4> 能够用图像上下文绘制图像
5> 绘制径向渐变、PDF(理解就行)
6> 所有的绘图工作必须在drawRect:方法中进行,如果需要更新显示,使用setNeedDisplay方法。
 
3. 小画家
 
基本上已经是一个完整的应用程序。
 
后续需要做的工作:
 
1> 界面美化,需要美工参与
2> 线宽选择
3> 添加照片后,需要手势的参与,挪动,缩放,旋转照片并确定具体的摆放位置
     让用户自行决定照片的具体位置
4> 添加一些内置的图片素材,小花、小动物,道具:帽子,眼镜...
5> 图像的滤镜:毛玻璃,复古……
 
上架发布!
a) 照片美化的应用
b) 儿童绘图应用
 
=========================================================
小画家程序需要掌握的内容:
 
* drawView的具体实现过程
     触摸事件&绘图功能的结合应用
 
一定要掌握!
=========================================================
 
理解和扩充部分:
 
工具视图、颜色视图=>合并
 
目的只是为了通知绘图视图,去做撤销、清屏、保存、以及从照片库加载图片的功能
 
上课演练有几个知识点:
 
1> 多级的代理委托传递
2> 触摸事件中的pointInside方法的使用
 
后续扩充的方向:
 
1. 需要把工具视图和颜色视图以及线宽视图重新布局。在实际应用中,通常这些组件是分开的,比较常见的是上下布局。主菜单通常放在下面,不同的布局主要取决于美工的设计。
 
==================================================
在实际的程序开发中,我们通常用了90%的时间(开发计划安排的总时间)完成了90%的功能。但是,我们又用了90%的时间,完成了剩下10%的功能。
 
要估算实际的开发进度,自己估算出来的时间*2
==================================================
 
在开发过程中,涉及到界面部分的UI或者视图,在开发前期尽量不要去封装的太狠,过度封装之后,使用非常方便,代码也非常优雅,但是扩展性不够。
 
在实际开发中,不要为了封装而封装,要给自己流出一线。
在实际工作中,相比较代码的优雅以及封装性,产品按时上线是最重要的。通常没有任何一个代码能够重构的非常好!
 
关于封装,越早开始封装,程序的可扩展性就越好,但是距离产品正式完成的时间就越长。越晚开始封装,程序的可扩展性不好,但是能够紧随需求变化,能够保证按时完成工作,这种代码,一旦到后期规模较大时,可能已经无法再进行重构。
 
在学习阶段,还是要不断地训练自己的封装以及重构能力,对我们日后的工作,非常非常非常有帮助!
© chenyilong. Powered by Postach.io


作者:
出处:http://www.cnblogs.com/ChenYilong/(点击RSS订阅)
本文版权归作者和博客园共有,欢迎转载,
但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

原文地址:https://www.cnblogs.com/ChenYilong/p/3556314.html