我有两个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