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

下载地址: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传输的时候,包大小,结构还有很大的优化空间。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容