2009-09-03 75 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将被剪辑。

所有的说法我敢打赌有一个更好的方法来剥皮这只特定的猫。这个解决方案给我感觉非常“圆钉,方孔”。