2009-09-03 77 views
0

我有兩個UILabels。我想重疊在另一個之上。將標籤稱爲「下」和「上」。UILabel問題。對齊重疊的UILabels

以上:A C E G

下:乙d˚F

的UILabel 「之上」 將具有其文字用紅色繪製。 「下」會變成藍色。視覺效果將是連續字母之間交替的顏色。

我可以使用哪些控件精確對齊每個標籤中的文本以將其取消?

乾杯, 道格

回答

0

我同意fbrereton。這似乎是實現目標的一個非常困難的方法。查看NSString UIKit Additions瞭解如何繪製自己的字符串,並將自己的字符放在自己的自定義-drawRect:中。你將擁有更大的控制力,並且代碼不應該那麼複雜。 iPhone沒有很好的佈局支持(沒有Mac提供的東西),但對於這種簡單的東西,它不應該太糟糕。

+0

很酷。感謝NSString UIKit指針。 – dugla 2009-09-03 21:47:38

0

你必須確保你正在使用的字體是等寬字體,否則字符不會完全一致,你會只用它們之間的空間的希望。 (我相信在iPhone OS中有一個打字字體是等寬字體; YMMV。)另外,您必須在underLabel前加一個空格,以便下面的代碼可以工作。

要在另一個之上映射一個UILabel,嘗試:

overLabel.opaque = NO; // so you can see what is under overLabel 
overLabel.textColor = [UIColor redColor]; 
overLabel.backgroundColor = [UIColor clearColor]; 
underLabel.frame = overLabel.frame; 
underLabel.textColor = [UIColor blueColor]; 

注意在上面的代碼underLabel呈現overLabel的幀,因爲後者的幀是寬;如果這是另一種方式overLabel將被剪輯。

所有的說法我敢打賭有一個更好的方法來剝皮這隻特定的貓。這個解決方案給我感覺非常「圓釘,方孔」。