2011-01-05 60 views
0

我創建了一個自定義的UIView,它使用Quartz重寫了drawRect方法。我最終設法讓所有事情都按照我想要的方式工作,但是卻有一種真正奇怪的行爲,我無法擺脫困境。石英2D繪圖alpha中淡入淡出的UIView

如果我使用定義爲=> (@interface TagView:UIView) 的自定義UIView,並將其alpha值設置爲1,那麼它將完全按照我的預期進行繪製。

我遇到的問題是,在一個特定的實例中,我希望它以0.3的alpha值繪製,因此我已將視圖添加到IB,alpha值爲0.3。我使用CGContextSetRGBStrokeColor和CGContextSetRGBFillColor繪製了許多具有不同RGB值的工件。這些都工作正常,直到我嘗試爲所有3個RGB值設置非零值。

爲了說明我是否使用: CGContextSetRGBStrokeColor(context,1,1,0,1); 然後我得到一條黃線。 如果我使用: CGContextSetRGBStrokeColor(context,1,1,0.001,1); 我什麼也沒得到。

似乎只要我將其中一個RGB值設置爲0,它就很高興並繪製出來,但只要所有三個值都非零,就會失敗。當視圖的alpha設置爲1.0時(即,我可以繪製白色而沒有任何問題),這一切都可以正常工作。

有沒有人有任何想法或建議,以什麼可能會導致這種情況或如何我可以診斷問題?

回答

0

Garrrrrrr ......看來我的神祕能力只能在論壇上發佈一個問題,以便在30秒後自己解決問題! (當然這是在將頭髮拉出2天后...)。

看來我不小心將視圖的背景顏色留爲白色。用0.3阿爾法實際上並不十分明顯。白色白色==不可見,所以我懷疑這就是爲什麼線條不可見。我會認爲幾乎所有的黃色都會出現,但似乎並非如此。

0

嘗試將您的自定義視圖的opaque屬性設置爲NO