2012-02-22 94 views
8

如何向我的白色UILabel文本添加黑色轮廓?UILabel文本概述

+0

检查此:http://stackoverflow.com/a/1424665/845115 – 2012-02-22 09:35:23

+0

你的意思是黑色边框? – rakeshNS 2012-02-22 09:36:13

+0

@rakeshNS是的,我想围绕标签的文字黑色边框。 – hgpl 2012-02-22 09:38:12

回答

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

+0

这样做或者添加一个模糊的轮廓,或者笔划/轮廓被偏移。看到这个链接的一个很好的解决方案:http://stackoverflow.com/a/15877054/254598 – Maurizio 2013-08-14 22:17:01

2

对于iOS5的,通常的方法是使用CoreGraphics中设置填充/描边,然后渲染图形。尽管对所有字体大小进行校准可能会非常棘手。

我推荐看我的解决方案here。您可以直接使用它(它也具有漫射阴影),或者只需选取执行轮廓的代码即可。对于iOS6,有一个更好的(更小的)解决方案,效果更好。看看here

+1

iOS6已经不在了,你能告诉我们关于整洁的解决方案吗?我无法弄清楚。 – 2012-09-21 04:30:30

+0

是@Nuoji,我也很有兴趣了解iOS 6解决方案。 – flainez 2012-10-06 17:20:50

+0

正如你所看到的,我已经通过链接到iOS 6解决方案更新了我的回复。 – Nuoji 2012-11-14 18:12:57

1

我相信this代码会解决你的问题。

在KSLabel.m类看到这行代码

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

改变它

self.textColor = [UIColor blackColor]; 

,你会看到文本的黑色边框。

5

披露:我是THLabel的开发人员。

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

我正在使用核心文本和核心图形来实现该效果。

+1

刚装好它,迄今为止工作完美无瑕,做得很好。 – TaylorAllred 2015-09-24 22:43:36