2011-11-30 73 views
5

我有一個要求,即必須在視圖的框架之外繪製視圖的陰影。我們已經有了複雜的視圖層次結構/分層,現在不可能改變視圖的框架和佈局以適應viewController視圖邊界內的陰影。UIView在視圖的框架之外繪製陰影

我有點擔心這裏的我是否允許繪製陰影的視圖外通過以下這種方法:

你也可以創建一個將基於陰影。無論是在視圖繪製的alpha成分通常這將導致一個影子就在視圖的邊緣上一個UILabel此示例代碼:

label.layer.shadowColor = [UIColor blackColor].CGColor; 
label.layer.shadowOpacity = 1.0; 
label.layer.shadowRadius = 5.0; 
label.layer.shadowOffset = CGSizeMake(0, 3); 
label.clipsToBounds = NO; 

在這種情況下,您需要clipsToBounds爲NO才能顯示視圖框架外的陰影。接下來,我將向您展示如何實際結合圓角和陰影,因爲我確信這就是您現在想要做的。

參考:http://bynomial.com/blog/?p=52

2.現在,我所遇到的線程它告訴圖紙視圖外的陰影,不鼓勵,但沒有給出的解釋: How can I draw a shadow beyond a UIView's bounds?

有什麼原因爲什麼我們不應該在視圖的框架之外繪製陰影(CALayer)?或者,按照第一種方法,它是否很好?

謝謝, Raj

回答

6

我絕對沒有理由不以這種方式畫出陰影,這是坦率地說唯一的方法。你爲什麼「不被允許」在界限之外畫一個陰影?這就是clipsToBounds屬性的用途。