UILabel文本的大纲

时间:2012-02-22 09:32:51

标签: iphone objective-c uilabel

如何在白色UILabel文字中添加黑色轮廓?

4 个答案:

答案 0 :(得分:9)

一个选项是设置阴影,这可能不是您想要的,但实现类似的效果。您可以手动调整偏移量:

UILabel *myLabel = ...;
lbl.shadowColor = [UIColor whiteColor];
lbl.shadowOffset = CGSizeMake(0, -1.0);

请注意,您也可以在Interface Builder中为UILabel

定义此内容

shadow http://i.minus.com/jbiG0jVdOxJbgh.png

如果这还不够,请查看此blog post,其中涉及子类化UILabel以获得发光效果:

glow http://www.redrobotstudios.com/blog/wp-content/uploads/2010/04/glow1.png

答案 1 :(得分:5)

披露:我是THLabel的开发者。

我刚刚发布了一个UILabel子类,它允许在文本和其他效果中使用大纲。您可以在此处找到它:https://github.com/tobihagemann/THLabel

我正在使用Core Text和Core Graphics来实现这种效果。

答案 2 :(得分:2)

对于iOS5,通常的方法是使用CoreGraphics设置填充/描边,然后渲染图形。尽管如此,对于所有字体大小来说对齐都是非常棘手的。

我建议查看我的解决方案here。您可以直接使用它(它也有漫反射阴影),或者只选择执行轮廓的代码。对于iOS6,有一个更整洁(更小)的解决方案,工作得更好。看here

答案 3 :(得分:1)

我确信this代码可以解决您的问题。

在KSLabel.m类中,请看到这行代码

// Outline color
self.textColor = [UIColor whiteColor];

将其更改为

self.textColor = [UIColor blackColor];

你会看到文字的黑色边框。