2012-11-19 92 views
1

我重写-drawRect:来绘制一些自定义视图。通常,我正在绘制一个填充圆角矩形贝塞尔路径和阴影。但是,我遇到了一个令人讨厌的问题:当我设置阴影颜色时,填充颜色也变为相同的颜色!为什么CGContextSetShadowWithColor也会改变当前的填充颜色?

这是Core Graphics中的错误,还是我在这里丢失了一些东西?这里是我的代码示例,我试图用阴影画出一条路径。 translucentBlackhighlight是两个不同的UIColor对象,但绘制的内容是圆角矩形,其中填充了高光颜色以及高光颜色中的阴影。

UIBezierPath* blackTranslucentRoundedRectPath = [UIBezierPath bezierPathWithRoundedRect: CGRectMake(CGRectGetMinX(frame) + 5, CGRectGetMinY(frame) + 5, CGRectGetWidth(frame) - 10, CGRectGetHeight(frame) - 10) cornerRadius: 8]; 
CGContextSetShadowWithColor(context, highlightOffset, highlightBlurRadius, highlight.CGColor); 
[translucentBlack setFill]; 
[blackTranslucentRoundedRectPath fill]; 

任何想法?谢谢!

+0

感谢上帝有人提出了这个问题。让我感觉不那么独特愚蠢。 – CharlieMezak

回答

2

发生了什么是你可以看到你的突出显示颜色通过你的半透明黑色。将translucentBlack更改为任何非透明颜色(使其alpha等于1.0),您应该没问题。

+0

@%#$的儿子,杜拜。我完全在这个间隔。不知何故,我在想影子只能在路径之外,而不在路径之后。 – CharlieMezak

相关问题