UIView绘制阴影超出视图框架

5
我有一个要求,需要绘制视图的阴影超出视图的边框。我们已经有复杂的视图层次结构/分层,并且现在无法更改视图的框架和布局以适应viewController的视图界限内的阴影。
1. 我有些担心,是否可以通过以下方法绘制视图外的阴影:
“您还可以创建基于视图中绘制内容的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
1个回答

6

我完全看不出为什么不能以这种方式绘制阴影,而且这实际上是唯一的方法。为什么你不能在边界外绘制阴影? 这就是 clipsToBounds 属性的作用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接