我有兩個UILabels。我想重疊在另一個之上。將標籤稱爲「下」和「上」。UILabel問題。對齊重疊的UILabels
以上:A C E G
下:乙d˚F
的UILabel 「之上」 將具有其文字用紅色繪製。 「下」會變成藍色。視覺效果將是連續字母之間交替的顏色。
我可以使用哪些控件精確對齊每個標籤中的文本以將其取消?
乾杯, 道格
我有兩個UILabels。我想重疊在另一個之上。將標籤稱爲「下」和「上」。UILabel問題。對齊重疊的UILabels
以上:A C E G
下:乙d˚F
的UILabel 「之上」 將具有其文字用紅色繪製。 「下」會變成藍色。視覺效果將是連續字母之間交替的顏色。
我可以使用哪些控件精確對齊每個標籤中的文本以將其取消?
乾杯, 道格
我同意fbrereton。這似乎是實現目標的一個非常困難的方法。查看NSString UIKit Additions瞭解如何繪製自己的字符串,並將自己的字符放在自己的自定義-drawRect:
中。你將擁有更大的控制力,並且代碼不應該那麼複雜。 iPhone沒有很好的佈局支持(沒有Mac提供的東西),但對於這種簡單的東西,它不應該太糟糕。
你必須確保你正在使用的字體是等寬字體,否則字符不會完全一致,你會只用它們之間的空間的希望。 (我相信在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
將被剪輯。
所有的說法我敢打賭有一個更好的方法來剝皮這隻特定的貓。這個解決方案給我感覺非常「圓釘,方孔」。
很酷。感謝NSString UIKit指針。 – dugla 2009-09-03 21:47:38