如何在UILabel的背景框架上设置阴影?

时间:2012-05-31 11:33:06

标签: iphone background uilabel layer shadow

我有一个UILabel,这个标签有一个填充的backgroundcolor(它是我的textView的标题)。我想启用一个阴影,以便这个暗影落在文本视图上。

我已经在我的标签文本上实施了阴影。

        descriptionLabel.layer.shadowColor = [[UIColor blackColor] CGColor];
        descriptionLabel.layer.shadowOffset = CGSizeMake(4.0f, 0.0f);
        descriptionLabel.layer.shadowOpacity = 1.0f;
        descriptionLabel.layer.shadowRadius = 1.0f;

但是我希望阴影位于标签的完整框架下方(因此不是文本)。

1 个答案:

答案 0 :(得分:3)

您可以将阴影路径更改为显式矩形,而不是使用图层内容:

CGPathRef shadowPath = CGPathCreateWithRect(descriptionLabel.bounds, NULL);
descriptionLabel.layer.shadowPath = shadowPath;
CGPathRelease(shadowPath);

这也是一种非常常见的技术,可以在向视图添加阴影时提高渲染性能。绘制的固定矩形阴影比基于图层内容的阴影要快许多倍。