2011-11-30 74 views
5

我有一个要求,即必须在视图的框架之外绘制视图的阴影。我们已经有了复杂的视图层次结构/分层,现在不可能改变视图的框架和布局以适应viewController视图边界内的阴影。UIView在视图的框架之外绘制阴影

我有点担心这里的我是否允许绘制阴影的视图外通过以下这种方法:

你也可以创建一个将基于阴影。无论是在视图绘制的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

回答

6

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