UIView在视图框架之外绘制阴影

Raj*_*dal 5 cocoa-touch calayer uikit uiview ios

我有一个要求,我必须在视图的框架之外绘制视图的阴影.我们已经有了复杂的视图层次结构/分层,现在无法更改视图的框架和布局以适应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;
Run Code Online (Sandbox Code Playgroud)

在这种情况下,您需要将clipToBounds设置为NO才能显示视图框外的阴影.接下来,我将向您展示如何实际组合圆角和阴影,因为我确信这就是您现在真正想要做的事情."

参考:http://bynomial.com/blog/?p = 52

2.现在,我遇到了一些线索,告诉我们不鼓励在视图外部绘制阴影.但没有给出任何解释: 我怎样才能画出超出UIView界限的阴影?

是否有任何理由为什么我们不应该在视图的框架外绘制阴影(CALayer)?或者,第一种方法是否可以?

谢谢,拉吉

Eri*_*ner 6

我绝对没有理由不以这种方式画阴影,坦白说这是唯一的方法.为什么你"不被允许"在界外划出阴影?这就是clipsToBounds房产的用途.