这是我的代码。
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 :(得分:31)
阴影实际上是在UIView下方绘制的。如果将maskToBounds设置为YES,则会剪切UIView框架之外的任何图形。 Here is a SO link that describes this in more detail.
答案 1 :(得分:21)
阴影被绘制在图层边界之外。您必须设置listView.layer.masksToBounds = NO
才能看到阴影
如果设置listView.layer.masksToBounds = YES
,则无法在边界之外绘制任何内容,因此无法获得阴影
答案 2 :(得分:1)
如果您必须使用masksToBounds = YES;
,请查看this SO post。它通过使用两个嵌套视图告诉您如何在视图上使用阴影和圆角(在此特定情况下):外部视图投射阴影并且不会屏蔽边界,而内部视图具有圆角和蒙版到边界。
答案 3 :(得分:0)
只有下面的内容对我有用
[self.view bringSubviewToFront:subView];