博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS之UI--涂鸦画板实例 (有待更新)
阅读量:6757 次
发布时间:2019-06-26

本文共 1900 字,大约阅读时间需要 6 分钟。

 

首先是搭建框架

 

其他的略过,直接展示效果:

然后接下来上传搭建好两个控制器框架的源码百度云下载链接: 密码: ardx ,工程里面还有我花了好长时间弄好的图标素材哦。

 然后在自定义继承UIView的CanvasView中:

然后效果是:

因为上面逻辑上的缘故,所以每重新绘制一次就会清除前一次的痕迹。那么解决方案就是,通过一个强引用的可变数组索引来存储每一次创建的路径,然后绘制出就遍历这个数组,全部绘出路径即可。

效果:

 

现在,需要将PatteleViewController的设置画笔属性起作用,所以需要在两个控制器传递数据,接下来就使用备忘录模式以及封装好的框架( ),因为时间缘故,就不整理细节笔记了,真的太花时间了,这里我就偷懒一下了,直接上传动态效果图:
<github上的FastCoding框架下载链接: >
 
 
源代码百度云下载链接: 密码: p81d
 
因为想体验一下直接用之前自己封装好的沙盒存取和操作的自定义SandBoxManager,看看加载速度快不快。
 
并且我还设置了toolBar的背景颜色:
 
这里提供使用封装好的SandBoxManager的源代码百度云链接: 密码: z8qd
 
 这里就上加载本地数据恢复对象状态的关键代码吧:
存储对象的状态:
恢复对象的状态:
 
 其实以上的方法就是瞎折腾,也不能算是瞎折腾,可以为以后开发遇到的新的需求提供新的可选择的方案,
那么接着就改为最优的方法,既然有Modal直接用Modal所有的方法和属性即可,
关键代码:
 
 
 
链接: 密码: vtun 此源代码代码优化之后很整洁,优雅。
 
 
 接下来就是要为toolBar的其他item添加功能了
撤销功能:
 
 
 
 这里需要添加一个业务逻辑:为了手绘之后要清楚存储撤销操作的数组:
 
 设置垃圾桶删除图标的事件监听:
 
 保存到系统相册的方法:
 
这部分源码,可以直接复制利用:
1 #pragma mark - 存储在相册中 2 - (IBAction)albumn:(UIBarButtonItem *)sender { 3     //把画板上的内容生成一张图片,保存到系统相册当中. 4     UIGraphicsBeginImageContextWithOptions(self.canvasView.bounds.size, NO, 0); 5     //把画板的内容渲染到上下文当中. 6     //获取当前的上下文 7     CGContextRef ctx = UIGraphicsGetCurrentContext(); 8     [self.canvasView.layer renderInContext:ctx]; 9     //从上下文当中生成一张图片10     UIImage *newImage =  UIGraphicsGetImageFromCurrentImageContext();11     //关闭上下文12     UIGraphicsEndImageContext();13     //把生成的图片写入到系统相册14     //注意:保存完毕执行的这方法必须得要是15     //- (void)image:(UIImage *)image didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo16     UIImageWriteToSavedPhotosAlbum(newImage, self, @selector(image:didFinishSavingWithError:contextInfo:), nil);17 }18 - (void)image:(UIImage *)image didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo{19     20     NSLog(@"%s",__func__);21 }
View Code

 接着,我突发奇想,想把特炫的苹果封装的好的转场动画用进去。当我点击垃圾桶图标删除当前这个画板,根据前面的代码我们也知道,会有弹出UIActionSheet提示框,点击确定当然会触发清空的功能,但是我希望是在清空之前有个翻页的功能,就好像前面不要的一页翻过去了。

关于转场动画这里就不累述了,可以自行百度谷歌,或者参考我的博文笔记:

到目前为止的项目备份百度云下载链接: 密码: k224

再看看运行效果

 

 
 
 
 
 
 
 
 
 
 
 
 
 
 

转载地址:http://pzweo.baihongyu.com/

你可能感兴趣的文章
部门表递归查询
查看>>
Analysis by Its History Exercise 2.3
查看>>
陶哲轩实分析 习题 7.1.5
查看>>
团队项目—后续阶段第三天
查看>>
python中的gil是什么?
查看>>
BFS 2015百度之星初赛2 HDOJ 5254 棋盘占领
查看>>
黑马程序员 ——ios点语法和类的三大特性
查看>>
Redis数据库总结
查看>>
python 阿狸的进阶之路(8)
查看>>
C#.net地址传参汉字乱码解决方案
查看>>
20155229《网络对抗技术》Exp:网络欺诈防范
查看>>
【本周面试题】第3周 - 浏览器相关面试题
查看>>
Struts13---Ognl
查看>>
11 Best CSS Frameworks For Making Your Website Stylish
查看>>
原型——设计思维之建立模型
查看>>
centos 7.2 同步北京时间 ,多台机器同步时间
查看>>
centos 7 设置开机启动脚本
查看>>
网络之 Iptables总结
查看>>
oracle之 安装 11G RAC 报 NTP failed
查看>>
Centos6.5环境下安装redis单机版以及Jedis连接
查看>>