UILabel的内部阴影

时间:2011-08-08 20:57:18

标签: iphone ios uiview uilabel

在不使用图像的情况下,在UILabel中绘制内部阴影的最简单方法是什么?

我知道你可以使用shadowColor和shadowOffset来实现投影,但是我没有看到内部阴影的任何这样的属性。

3 个答案:

答案 0 :(得分:4)

查看FXLabel。我最近一直在使用它,效果很好。

https://github.com/nicklockwood/FXLabel

答案 1 :(得分:1)

我不相信有任何简单的方法可以实现这种外观。您将需要使用图像或绘制阴影的自定义视图。

我会使用您最喜欢的图像编辑器来制作内部阴影的图像,该图像与透明度(或者如果您需要它的颜色)合成并将其加载到可伸展的UIImage中。例如,这里是一个内部阴影图像(17px x 17px): inner shadow

您可以像这样加载:

UIImage* innerShadow = [ [ UIImage imageNamed: "innershadow.png" ] 
        stretchableImageWithLeftCapWidth: 8 topCapHeight: 8 ];
UIImageView* innerShadowView = [ [ [ UIImageView alloc ] initWithImage: innerShadow ] 
        autorelease ];
myLabel.backgroundColor = [ UIColor clearColor ];

然后将innerShadowView放在标签后面。如果您想避免使用图像资源,也可以以编程方式生成图像。

**基于评论的更新如下**

啊,根据您的最新评论,您所寻找的效果与之前评论中的图片完全不同。

在这种情况下,您必须创建一个UILabel子类并使用您自己的绘图来合成您要查找的效果。看看this answer如何合成内部阴影效果。

答案 2 :(得分:0)

你对内阴影的任何此类属性的意思。 shadowOffset是设置UILabel的阴影(垂直或水平阴影)的选项。

我不知道,但answer可能需要很长时间才能实现。