美文网首页tomiOS进阶ios实用开发技巧
iOS 画板/涂鸦 你画我猜 demo (OC版)

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

作者: 梦的森林 | 来源:发表于2017-02-14 12:50 被阅读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传输的时候,包大小,结构还有很大的优化空间。

    相关文章

      网友评论

      • 启迪:“demo中使用的是performselector的方式,这里还需要优化。”使用performSelector会有什么问题?
      • acb27eeceaec:大神,你好我用了你的demo,发现如果设置画板的高度为float类型时,画多次后底部的笔迹会上移,笔迹也会模糊。。。。请指教一下,谢谢
        梦的森林:暂时没想到好办法,只能设置整数。之前也遇到过类似问题,还没找到具体原因。
      • 不觉梦回:我看了你的 Demo,关于在划线时变圆滑的时候我遇到了点问题。。还望指点一二
        梦的森林:@淡泊明志_Ylx 我这最低的设备就是6plus了,并没有出现丢失笔画的情况,你那测试设备是哪种机型?
        不觉梦回:@梦的森林 在我们的实际项目中,测试给我说手写的时候不是很流畅,写快了还会出现丢失笔画的情况。亲测你的 Demo 中也有这种现象,不知兄台有何高见
        梦的森林:曲线绘制的圆滑处理,我是参考的这个http://code.tutsplus.com/tutorials/ios-sdk_freehand-drawing--mobile-13164

      本文标题:iOS 画板/涂鸦 你画我猜 demo (OC版)

      本文链接:https://www.haomeiwen.com/subject/kxrbbttx.html