(第6章)绘制渐变 发表于 2017-02-25 在iOS中,渐变描述颜色之间的渐变。它用于绘制图形和模拟计算机生成的图形中的实际照明,渐变是许多绘图任务的重要组成部分,可用于制作强大的视觉效果。本章介绍iOS渐变,并演示如何使用它们将pizzazz添加到应用程序中。 6.1-渐变 6.2-绘制渐变 6.3-构建渐变 6.4-添加边缘效果 6 ... 阅读全文 »
(第5章)小结 发表于 2017-02-24 本章深入介绍了Bezier路径。您已经看到了如何分解,重建和绘制路径以创建各种绘制效果。关于这一章这里有一些最后的想法: 当在模拟器中测试绘图时,你实际上可以从模拟的iOS应用程序写入正常的OS X文件系统。例如,您可能希望通过添加如下行来保存刚才在上下文中创建的图像的副本: 123[UIIma ... 阅读全文 »
5.12-可视化路径顺序 发表于 2017-02-24 清单5-15使您能够跟踪路径,显示从开始(暗)到结束(明)的路径进度。虽然我开发这个例程专门用于调试,我发现它很方便在各种情况下使用。 例如,最大百分比参数有助于为自定义动画提供动力。如果消除颜色相位,该函数将作为进度模式,填充到指定的点。如果在迭代点之间绘制线而不是点,则还可以使用相位颜色构建整个 ... 阅读全文 »
5.11-颠倒路径 发表于 2017-02-23 不幸的是,在iOS 6.x和早期版本的iOS 7 SDK中,特别是使用复杂的bezierPathByReversingPath颠倒Bezier路径的方法已经被打破了。新的解决方案取决于将每个路径分解为子路径(参见清单5-8;每个子路径都以移动操作开始,可能不会以关闭操作结束),然后再分解成组件元素( ... 阅读全文 »
5.10-绘制内部和外部发光 发表于 2017-02-22 与阴影不同,发光没有方向。它们是围绕着所有方向的路径,如图5-13所示,一个柔软的绿色外部发光突出了紫色兔子的边缘。 图5-13在路径外部应用绿色外部发光。 有了所有的阴影,有几种方法可以实现发光效果; 最简单的是使用Quartz影子,如清单5-13所示。您直接在路径上绘制阴影,偏移量为(0,0) ... 阅读全文 »
5.9-绘制阴影 发表于 2017-02-21 Quartz上下文支持阴影绘制作为可选的特定上下文功能。绘制在您指定的路径偏移处,阴影绘制模拟物理对象上光源的效果。图5-8演示了阴影在绘制到上下文时的外观。绘制阴影需要频繁的CPU计算,但是它们为你的界面增加了美丽的细节。 图5-8 您可以添加阴影到上下文 与所有其他上下文状态更改一样,阴影会影 ... 阅读全文 »
5.8-反转路径 发表于 2017-02-20 图5-7显示了一条Bezier路径的三个路径。由一系列椭圆形旋转并放置成圆形,最左边的图像被简单地填充。中间图像反转该路径,填充位于路径外的所有区域。右边的图像提供第三次采集:它反转路径,但反转限制在路径的自然边界之内。 图5-7左:原始路径 中间:反转路径。右:只在路径自然边界内反转路径。 每个 ... 阅读全文 »
5.7-检索子路径 发表于 2017-02-19 贝塞尔曲线路径可能包含一个或多个子路径,包括开放的组件,如弧线和线,或封闭的组件,如图5-5中的椭圆。此图中的每个椭圆形被创建为单个子路径并附加到复合的父视图路径。 图5-5此Bezier路径由多个椭圆子路径组成。 许多很有用的绘制操作基于分解复合路径。例如,如图5-6所示,您可能想要使用不同的色 ... 阅读全文 »
5.6-插值路径 发表于 2017-02-18 代码清单5-7使您能够插入一个路径实例,以查找沿其具有一定百分比的点。代码必须是广泛适用的,因为两件事情。首先,必须考虑所有情况 - 直线,三次曲线和二次曲线。这涉及到大量的switch语句来考虑和计算每种可能性。 第二,此方法返回一个可选的斜率 - 这是作为最后一个参数传递的CGPoint地址。计 ... 阅读全文 »
5.5-计算路径距离 发表于 2017-02-17 在您可以说“沿着路径移动35%”之前,您必须能够评估路径的长度。这就是清单5-6中为您提供的函数和方法。它们返回一个值,以点为单位,表示当前scale的路径范围。 pathLength方法通过对其每个元素迭代应用ElementDistanceFromPoint()函数来计算Bezier路径的长度。此 ... 阅读全文 »