0

我有两个 UILabel。我想把一个重叠在一起。将标签称为“下”和“上”。

结束:ACEG

下:BDF

UILabel "over" 将其文本绘制为红色。“下”将显示为蓝色。视觉效果将是连续字母之间的交替颜色。

我可以使用哪些控件来精确对齐每个标签中的文本以实现这一点?

干杯,道格

4

2 回答 2

0

我同意弗布雷顿。这似乎是一个很难实现目标的方法。查看NSString UIKit Additions以了解如何绘制自己的字符串并在自定义的-drawRect:. 您将拥有更大的控制权,并且代码不应该那么复杂。iPhone 没有很好的布局支持(没有像 Mac 那样提供),但对于这么简单的东西,它应该不会太糟糕。

于 2009-09-03T03:18:00.083 回答
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'frame,因为后者的 frame 更宽;如果反过来,overLabel就会被剪掉。

话虽如此,我敢打赌,有一种更好的方法可以给这只猫剥皮。这个解决方案对我来说感觉非常“圆钉,方孔”。

于 2009-09-03T03:07:19.277 回答