有没有办法改变UILabel中一部分字符串的颜色?

时间:2009-10-27 02:19:39

标签: objective-c cocoa-touch

说我想让前六个字符为黑色,接下来的六个字符为蓝色,然后是最后20个字符为黑色的UILabel。这可能吗? 谢谢!

5 个答案:

答案 0 :(得分:3)

在Big Cocoa中,您将在NSTextField或NSTextView中使用NSAttributedString。在Cocoa Touch中,您可以使用UIWebView显示富文本。

答案 1 :(得分:1)

Zynga已经为你做了很多繁重的工作,请在GitHub上查看Font Label

答案 2 :(得分:0)

正如Darren所说,iPhone不支持NSAttributedString,但您可以使用UIWebView。

另一种可能的解决方案可能是使用NSString的-drawAtPoint:withFont:方法(或类似方法)绘制文本。你可以继承UILabel并在-drawRect:中进行绘图。

首先,将颜色设置为黑色并绘制前六个字符。请注意-drawAtPoint:withFont:返回的宽度,并使用它来计算接下来的六个字符的起点。更改颜色,绘制这些字符,然后对字符串的其余部分重复相同的操作。

请注意,-drawAtPoint:withFont:不会执行换行符,因此它可能会比我所描述的更加复杂。

查看NSString UIKit additions

答案 3 :(得分:0)

尝试TTTAttributedString。它是UILabel的直接替代品,使得NSAttributedStrings像冠军一样。

答案 4 :(得分:-3)

你想要一个NSAttributedString。