2012-02-22 137 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