我想在HOLLOW CGPath的OUTSIDE边缘添加一个阴影(这两个词很重要:outside + hollow :))。CALayer.shadow创建的剪切阴影
苹果的影子执行只允许你做“填充”的阴影。
那么......如何去掉阴影内部的部分呢?如果它是一个渲染调用,我会调用CGContextSetClip *方法将其剪裁到我想要的位置......但是我不明白你会怎么做,因为它既不是渲染调用,也不是CALayer本身。
(苹果的一个不幸后果“藏”作为一组神奇的变量,我猜?)
注意:这是仅适用于iOS - IIRC在Mac上,你必须用来创建阴影过滤器直接访问,所以你可以手工创建你自己的(任意的)阴影。
UPDATE:
我制定了如何剪辑,只显示阴影的内侧部分:设置“layer.mask”,是一个新的层是当前层的一个副本(即相同的路径),并将路径fillcolor设置为具有完整字母的任何东西。
这是我想要的相反,所以如果我能想出一个方法来获得掩膜层翻转阿尔法(0变成1,1变成0),我会在那里...
我试过了,但没有发生在我的图层上,而且你没有定义'shadowBorderWidth'。这是什么意思? – 2013-06-28 07:45:34
我改变了代码。我不知道它是否仍然有效,可能会。如果它不适合你,你可以做很多调试:你的cloneShapeLayer方法,CGPath中的缠绕规则,你原来的CGPath本身等等......这取决于你的源代码和你的图像数据 - 我无法为你调试。 – Adam 2013-06-28 11:23:11
谢谢,我会试试:) – 2013-06-28 14:53:37