我有一个要求,我必须在视图的框架之外绘制视图的阴影。我们已经有了复杂的视图层次结构/分层,现在无法更改视图的框架和布局以适应viewController视图边界内的阴影。
1。我有点关注我是否允许在视图之外绘制阴影,遵循以下方法:
“您还可以创建一个投影,该投影将基于视图中绘制的任何内容的alpha分量。通常这会在视图边缘产生阴影。 < em> 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;
在这种情况下,您需要将clipToBounds设为NO才能显示视图框外的阴影。接下来,我将向您展示如何实际组合圆角和阴影,因为我确信这就是您现在真正想要做的事情。“
参考:http://bynomial.com/blog/?p=52
2。现在,我遇到了一些线索,告诉我们不鼓励在视图外部绘制阴影。但没有给出解释: How can I draw a shadow beyond a UIView's bounds?
为什么我们不应该在视图的框架外绘制阴影(CALayer)?或者,在第一种方法之后它没有问题吗?
谢谢, 拉吉
答案 0 :(得分:6)
我认为绝对没有理由不以这种方式画阴影,坦白说这是唯一的方法。为什么你“不被允许”在界外划出阴影?这就是clipsToBounds
属性的用途。