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

时间:2011-11-30 06:05:58

标签: ios cocoa-touch uiview uikit calayer

我有一个要求,我必须在视图的框架之外绘制视图的阴影。我们已经有了复杂的视图层次结构/分层,现在无法更改视图的框架和布局以适应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)?或者,在第一种方法之后它没有问题吗?

谢谢, 拉吉

1 个答案:

答案 0 :(得分:6)

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