我有两个UILabel。我想在另一个上重叠一个。将标签称为“下方”和“上方”。
结束:A C E G
下:B D F
UILabel“over”将其文字用红色绘制。 “下”将为蓝色。视觉效果将是连续字母之间的交替颜色。
我可以使用哪些控件来精确对齐每个标签中的文字以将其关闭?
干杯, 道格
答案 0 :(得分: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
的另一种方式会被剪裁。
所有这一切,我敢打赌,有一种更好的方法来抚育这只特殊的猫。这个解决方案对我来说感觉非常“圆钉,方孔”。
答案 1 :(得分:0)
我同意fbrereton。这似乎是实现目标的一种非常困难的方式。查看NSString UIKit Additions,了解如何绘制自己的字符串,并在自己的自定义-drawRect:
中自行创建角色。你将拥有更大的控制权,代码不应该那么复杂。 iPhone没有非常好的布局支持(没有像Mac提供的那样),但对于这个简单的东西,它应该不会太糟糕。