tomiOS进阶ios实用开发技巧

iOS 画板/涂鸦 你画我猜 demo (OC版)

2017-02-14  本文已影响721人  梦的森林

下载地址:https://github.com/linsendear/LSDrawTest

录制脚本:

播放脚本:

这个demo参考了下面两个项目

https://github.com/WillieWu/HBDrawingBoardDemo

https://github.com/Nicejinux/NXDrawKit

也针对这两个demo做了相应的优化

结构:由上至下

1、最上层的UIView(LSCanvas)

使用CAShapeLayer,提高绘制时的效率

2、第二层的UIImageview是用来合成LSCanvas用的

这样画很多次的时候,也不会占用很高的cpu

3、第三层是UIImageview,是用来放背景图的

关于录制脚本:

1、//linyl标记的代码都是跟录制脚本和绘制脚本相关

2、录制后需要重新跑程序,因为这只是个demo

还需要优化的地方:

1、在不同设备上,需要根据画板比例调整point和线宽等(或者固定画板大小)。

2、当前的记录方式是用归档的方式,每次有动作(撤销,重做,保存,清空)和每次的touchsend

后,都会记录成一个LSDrawPackage对象。如果想使用socket传输时,可以改为每0.5秒一个LSDrawPackage对象

,也就是说,每个LSDrawPackage对象都是一段时间内的绘制和操作。(还有一种做法是传送图片或关键帧,但这时候需要评估网络能力,还有绘制的感觉也不一样)

3、线程处理

demo中使用的是performselector的方式,还需要优化。

4、当前的绘制端和显示端公用了很多的内部结构。

PS:

1、没使用drawrect

2、使用橡皮擦时,cpu占用率还是非常高。

3、近期没有更新计划了。如果做socket传输的时候,包大小,结构还有很大的优化空间。

上一篇 下一篇

猜你喜欢

热点阅读