iOS之UI--涂鸦画板实例 (有待更新)
首先是搭建框架


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

然后接下来上传搭建好两个控制器框架的源码百度云下载链接: http://pan.baidu.com/s/1skjpDox 密码: ardx ,工程里面还有我花了好长时间弄好的图标素材哦。
然后在自定义继承UIView的CanvasView中:

然后效果是:

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

效果:












#pragma mark - 存储在相册中
- (IBAction)albumn:(UIBarButtonItem *)sender {
//把画板上的内容生成一张图片,保存到系统相册当中.
UIGraphicsBeginImageContextWithOptions(self.canvasView.bounds.size, NO, );
//把画板的内容渲染到上下文当中.
//获取当前的上下文
CGContextRef ctx = UIGraphicsGetCurrentContext();
[self.canvasView.layer renderInContext:ctx];
//从上下文当中生成一张图片
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
//关闭上下文
UIGraphicsEndImageContext();
//把生成的图片写入到系统相册
//注意:保存完毕执行的这方法必须得要是
//- (void)image:(UIImage *)image didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo
UIImageWriteToSavedPhotosAlbum(newImage, self, @selector(image:didFinishSavingWithError:contextInfo:), nil);
}
- (void)image:(UIImage *)image didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo{ NSLog(@"%s",__func__);
}
接着,我突发奇想,想把特炫的苹果封装的好的转场动画用进去。当我点击垃圾桶图标删除当前这个画板,根据前面的代码我们也知道,会有弹出UIActionSheet提示框,点击确定当然会触发清空的功能,但是我希望是在清空之前有个翻页的功能,就好像前面不要的一页翻过去了。

关于转场动画这里就不累述了,可以自行百度谷歌,或者参考我的博文笔记:http://www.cnblogs.com/goodboy-heyang/p/5044018.html
到目前为止的项目备份百度云下载链接: http://pan.baidu.com/s/1o7kbQYI 密码: k224
再看看运行效果

iOS之UI--涂鸦画板实例 (有待更新)的更多相关文章
- iOS之UI--涂鸦画板实例
iOS之UI--涂鸦画板实例 首先是搭建框架 其他的略过,直接展示效果: 然后接下来上传搭建好两个控制器框架的源码百度云下载链接: http://pan.baidu.com/s/1skjpDox ...
- 如何创建可扩展表视图中的iOS 学习和拓展优化(有待更新)
首先介绍老外的文章:<How To Create an Expandable Table View in iOS>这是老外用Swift实现 的,对应的老外github项目源码:https: ...
- Python+PyQT5的子线程更新UI界面的实例《新手必学》
今天小编就为大家分享一篇Python+PyQT5的子线程更新UI界面的实例,具有很好的参考价值,希望对大家有所帮助.一起跟随小编过来看看吧子线程里是不能更新UI界面的,在移动端方面.Android的U ...
- iOS:quartz2D绘图小项目(涂鸦画板)
介绍:学了quartz2D的绘图知识后,我根据它的一些功能制作了一个小项目:涂鸦画板. 功能:绘制各种图形,还可以选取相册上的照片做涂鸦,然后保存到相册中.其中,还包括功能有:颜色的选取.线宽的选取. ...
- iOS开发——UI进阶篇(十五)Quartz2D介绍
一.Quartz2D简介 1.什么是Quartz2DQuartz 2D是一个二维绘图引擎,同时支持iOS和Mac系统 Quartz 2D能完成的工作绘制图形 : 线条\三角形\矩形\圆\弧等绘制文字绘 ...
- iOS开发-UI 从入门到精通(三)
iOS开发-UI 从入门到精通(三)是对 iOS开发-UI 从入门到精通(一)知识点的综合练习,搭建一个简单地登陆界面,增强实战经验,为以后做开发打下坚实的基础! ※在这里我们还要强调一下,开发环境和 ...
- iOS开发-UI 从入门到精通(二)
iOS开发-UI 从入门到精通(二)是对 iOS开发-UI 从入门到精通(一)知识点的巩固,主要以习题练习为主,增强实战经验,为以后做开发打下坚实的基础! ※开发环境和注意事项: 1.前期iOS-UI ...
- iOS开发UI篇—CALayer简介
iOS开发UI篇—CALayer简介 一.简单介绍 在iOS中,你能看得见摸得着的东西基本上都是UIView,比如一个按钮.一个文本标签.一个文本输入框.一个图标等等,这些都是UIView. 其实 ...
- iOS开发UI篇—UITableview控件基本使用
iOS开发UI篇—UITableview控件基本使用 一.一个简单的英雄展示程序 NJHero.h文件代码(字典转模型) #import <Foundation/Foundation.h> ...
随机推荐
- 简单学ES6 - class
前言 随着ES6标准的定稿,众多的特性也趋于稳定,各大浏览器也在逐步实现这些特性,那么对ES6有更多的了解就无可厚非了. 准备 在学习ES6之前,我们需要有一个环境来测试ES6代码.在这里我推荐使用n ...
- R Language
向量定义:x1 = c(1,2,3); x2 = c(1:100) 类型显示:mode(x1) 向量长度:length(x2) 向量元素显示:x1[c(1,2,3)] 多维向量:multi-dimen ...
- Nodejs建站笔记-注册登录流程的简单实现
1. 使用Backbone实现前端hash路由 登录注册页面如下: 初步设想将注册和登录作为两个不同的url实现,但登录和注册功能的差距只有form表单部分,用两个url实现显然开销过大,所以最终方案 ...
- NativeScript工作原理
NativeScript是一个runtime,它提供一些机制可以使用JavaScript构建原生的IOS.Android甚至WP(未来会加入)应用.NativeScript有很多非常酷的功能,比如MV ...
- html5 audio/video 的那些坑
当我最近项目用到audio的时候,我们用到了jPlayer作为三方库. 功能实现了,暂停播放,进度条什么的,都很顺利的搞定了.后来考虑到当网速过慢时需要给播放按钮一个载入动画,然后就一发不可收拾了. ...
- python面向对象编程(上)
面向对象编程(OOP,Object Oriented Programming)是每一个高级编程语言都支持的编程方法,比如JAVA/C++/C#等等.学习面向对象编程是每一个程序员都绕不开的重点内容. ...
- 记第二次使用php开发项目之绝不重复自己
严格说起来,自己并非一个合格的php程序员.第一次使用php开发,不过是因为游戏上线,需要一个统计管理后台和GM后台,因为招聘已经来不及,所以我就上前线了! 凭着对php语法的一点点记忆(大学的时候学 ...
- Build 2016概览
很快Microsoft Build 2016马上就要开始,在直播放出来之前,微软已经提前把本次大会期间的所有课程列表放了出来,你可以在这里看到: https://channel9.msdn.com/E ...
- 较友好的Web文件下载用户体验实例
1.实际需求整理与分析 该问题起源于为公司做的一个B/S架构的游戏静态数据管理工具,其中有一个需求是点击页面上的一些按钮要下载文件,可能根据按钮类型的不同需要转换下载.json..zip..xlsx等 ...
- Servelet面试题
1. Servlet与JSP有什么区别? Servlet和JSP完成的功能是相同的,都可以接收用户的请求,可以对用户进行响应,可以调用业务方法. 不同点在于JSP是在html或者xml中嵌入了Java ...