2011-11-30 13 views
5

Görünümün çerçevesini görüntünün gölgesinden çıkarmak zorunda olduğum bir gereksinim var. Halihazırda karmaşık bir görünüm hiyerarşisi/katmanlamaya sahibiz ve şimdi görünümün çerçevelerini ve düzenini, görünümün denetleyicinin görünümünün sınırları içindeki gölgeleri kapsayacak şekilde değiştirmek mümkün olmayacaktı.UIView, görünüm çerçevesinin ötesine gölge çizin

"Ayrıca dayalı olacak bir gölge oluşturabilir:

1. Bu metodoloji izleyerek burada görünümü dışında gölge en çizmek için izin olup olmadığımı bit endişeliyim . görünümünüze çizilir ne olursa olsun alfa bileşeni Genellikle bu sadece bakış kenarlarındaki gölge neden olacaktırbir UILabel üzerinde Bu örnek kodu:.

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; 

Bu durumda, görünümünüzün çerçevesinin dışında bir gölgenin görünmesi için clipToTounds'un NO olması gerekir. Daha sonra, yuvarlak köşeleri ve alt gölgeleri nasıl birleştirebileceğinizi göstereceğim. Zaten bunun gerçekten yapmak istediğiniz şey olduğundan eminim. "

Referans: Şimdi http://bynomial.com/blog/?p=52

2., ben bakış dışında gölgeler çizim teşvik olmadığını söyler parçacığı rastlamak Ancak hiçbir açıklama yapılmadı. How can I draw a shadow beyond a UIView's bounds?

var mı uygulanıyor biz ince 1 yaklaşımı şudur, görünümün çerçevenin dışında gölgeler (CALayer) çizim? Veya edilmemelidir neden olarak sebebi?

sayesinde Raj

cevap

6

Bu şekilde bir gölge çizmemek için hiçbir sebep göremiyorum ve bu açıkçası tek yol. Sınırların dışında bir gölge çizmek için neden "izin verilmez"? clipsToBounds özelliğinin nedeni budur.