2012-11-19 160 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

相關問題