Подтвердить что ты не робот

Тень UIView не работает

Это мой код.

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;

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

4b9b3361

Ответ 2

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

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

Ответ 3

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