[custom-painter]

综合技术 2017-11-15

好久没更博了,主要是由于项目原因,时间上实在不允许。期间有两三次记录的想法,都因为时间搁浅了。忙里偷闲,趁这个时间手撸一个画画的 demo,这个 demo 支持的功能:笔,蜡笔,橡皮,以及常见的图形。

技术选型

iOS绘图的方式还是很多样的,系统提供了我们 Core Graphics、QuartzCore和 OpenGL ES 等。如果你的需求对绘图有较高要求,比如支持压感,则需要 OpenGL ES 偏底层的库来实现。如果需求比较简单,可以利用 iOS 给我们封装好的Core Graphics。其中常见的方法即在 drawRect
方法中开启上下文进行绘制。但是其中的弊病即内存会根据 drawRect
画布的大小来开辟内存空间,这也就是可能会造成内存问题。如果需求只是绘制少量的简单图形。则可以利用在 drawRect
中实现,但是我们这次的绘画 demo 会频繁的在屏幕上绘制,当然性能因素也是一大方面。则此方案暂时不考虑。在 QuartzCore 库中,采用 CAShapeLayer来去绘制。

您可能感兴趣的

夜间模式的实现 欢迎阅读Late Night Swift的第一篇文章。比起光说不做,比如动手去实现夜间模式吧。随着越来越多的人晚上用电子设备,夜间模式变得愈加重要。 夜间模式示范 我们的目标是通过简单办法给你的UI组件添加主题,并在主题间动态切换。为了达到这个目标,我们要建立一个协议,称为T...
获取APP的类结构信息 之前介绍了怎么操作越狱的iOS设备(以下简称为手机),但简单操作手机并不是目标,小程的目标是手机上特定的APP,比如微信、淘宝、QQ音乐等等,因为小程可以从这些APP上拿到一些有用的信息或资源--比如,“微信的那个页面是用什么控件来布局的?”、“QQ音乐的歌手头像,能批量地拿到吗?”,等等。 很...
Apple官方的《马上着手开发 iOS 应用程序》... 用户界面 iOS 具有许多框架和技术,用于创建和润色应用程序的用户界面。 UIKit。UIKit 框架提供的类可用于创建触摸式用户界面。所有 iOS 应用程序都基于 UIKit,因此您无法在没有框架的情况下交付应用程序。UIKit 提供基础结构,用于在屏幕上绘图、处理事件,以及创建通...
WCDB理解 WCDB(WeChat DataBase)是微信官方的移动端数据库组件,它基于SQLCipher,是一个关系型数据库,支持iOS, macOS和Android。WCDB提供了三个基础类进行数据库操作:WCTDatabase、WCTTable、WCTTransaction。它们的接口都是线程安全的。...
iOS项目里谓词的简单用法 由于项目里面用到谓词,感觉谓词还挺有用,挺有意思的,所以,总结一下谓词的简单用法。 何为谓词? 苹果官方定义: A definition of logical conditions used to constrain a search either for a fetch or for ...