在coregraphics中添加drophadow - 超出上下文界限?

时间:2012-03-11 19:09:35

标签: iphone objective-c core-graphics

我想为我在coregraphics中绘制的按钮添加一个drophadow。除了使按钮小于框架之外(这将是一个混乱的编码,因为将来你会忘记它并想知道为什么你的按钮不是它应该的尺寸),我有什么选择来绘制阴影?这也是一种自定义形状。

2 个答案:

答案 0 :(得分:3)

最简单的方法是将它添加到CALayer:

#include <QuartzCore/QuartzCore.h>

// iOS 4.0 or later
[self.layer setShadowColor:[[UIColor blackColor] CGColor]];
[self.layer setShadowOffset:CGSizeMake(1.0, 1.0)];
[self.layer setShadowOpacity:0.5];
[self.layer setShadowRadius:1.f];

如果这对您不起作用,请告诉我,我会发布一些代码CG代码。

答案 1 :(得分:0)

假设我正确地得到了问题,那么你正在寻找一种方法来停止剪切阴影。这很容易实现,假设您有一个阴影视图所在的视图层次结构,只需关闭阴影视图的超级视图上的clipsToBounds(如果超视图的超级视图需要的话)。

但要小心,因为可能还有其他事情你的意见被削减而且你不想被人看到(虽然通常这不应该是一个问题)。