0

我有以下代码:

CGContextSetShadowWithColor(context, CGSizeMake(0, 1.5), 
                       2.0, [UIColor blackColor].CGColor);

并根据我的理解应用阴影,我必须调用 CGContextFillPath。有没有其他方法可以在不调用填充路径的情况下做到这一点?

4

1 回答 1

3

不可以。您必须在图形上下文中使用描边或路径方法绘制一些东西来生成阴影。这是来自 Apple 的文档。

阴影如何工作

Quartz 中的阴影是图形状态的一部分。您调用函数 CGContextSetShadow,传递图形上下文、偏移值和模糊值。设置阴影后,您绘制的任何对象都有一个用黑色绘制的阴影,该阴影在设备 RGB 颜色空间中具有 1/3 的 alpha 值。换句话说,阴影是使用设置为 {0, 0, 0, 1.0/3.0} 的 RGBA 值绘制的。

您可以通过调用函数 CGContextSetShadowWithColor、传递图形上下文、偏移值、模糊值和 CGColor 对象来绘制彩色阴影。为颜色提供的值取决于您要绘制的颜色空间。

如果在调用 CGContextSetShadow 或 CGContextSetShadowWithColor 之前保存了图形状态,则可以通过恢复图形状态来关闭阴影。您还可以通过将阴影颜色设置为 NULL 来禁用阴影。

于 2013-01-21T22:08:50.240 回答