2012-04-30 4 views
18

Это мой код.UIView shadow не работает

listView.layer.masksToBounds = NO; 
listView.layer.shadowOffset = CGSizeMake(-3, 3); 
listView.layer.shadowColor=[[UIColor blackColor] CGColor]; 
listView.layer.shadowRadius = 4; 
listView.layer.shadowOpacity = 1.0; 
[listView.layer setShouldRasterize:YES]; 

Он хорошо работает с эффектом тени.

При изменении

listView.layer.masksToBounds = YES; 

Я не получить эффект тени.

+0

'listView' является UIView –

ответ

16

Тень рисуется за пределами границ слоя. Вы должны установить listView.layer.masksToBounds = NO, чтобы увидеть тень

если вы установите listView.layer.masksToBounds = YES вы не можете сделать что-нибудь сторону границ, так что вы не можете получить тень

+0

Это было наиболее полезно. благодаря –

1

Если вам нужно использовать masksToBounds = YES;, зарегистрируйтесь this SO post. В нем рассказывается, как использовать тени и закругленные углы (в данном конкретном случае), используя два вложенных вида: внешний вид отбрасывает тень и не маскируется до границ, в то время как внутренний вид имеет закругленные углы и маски для границ.

Смежные вопросы