English 中文(简体)
如何在UILabel中仅用一个单词加粗?
原标题:How can you bold just one word in a UILabel?
  • 时间:2010-10-22 15:08:59
  •  标签:
  • iphone

用完全相同的文本显示单个标签很容易,但当你想用粗体显示一个单词时会发生什么?

示例:

您的所有基地都属于我们。

最佳回答

UILabel本身无法在文本中绘制具有不同属性/字体的标签。但核心文本可以。您可以创建UILabel的子类,该子类包装属性字符串并使用核心文本绘制它。您可以按照此示例代码来自核心文本编程指南:

// Build up your attributed string, then...
CTLineRef line = CTLineCreateWithAttributedString(attrString);

// Set text position and draw the line into the graphics context
CGContextSetTextPosition(context, 10.0, 10.0);
CTLineDraw(line, context);
CFRelease(line);
问题回答

不幸的是,目前这是不可能的。但是,您可以将UILabel子类化并包含此功能。

另一种可能性是使用UIWebView,但这需要使用HTML标记和loadHTML:方法。

正如Evan Mulawski所写,UILabel不会给你想要的东西。就这一点而言,UITextField和UITextView都不会。

另一种方法是将UIView子类化,并编写一个-drawRect:方法来完成您想要的操作。你可以看看

  • CGContextShowTextAtPoint
  • [NSString drawAtPoint:withFont:]
  • [NSString sizeWithFont:]

如果你不需要很多断线和包装,那么你可能可以很容易地制作一些东西。

UIWebView可能会更快,但对于像样式标签这样简单的东西来说,这似乎是一个很大的开销。





相关问题
Code sign Error

I have created a new iPhone application.I have two mach machines. I have created the certificate for running application in iPhone in one mac. Can I use the other mac for running the application in ...

ABPersonViewController Usage for displaying contact

Created a View based Project and added a contact to the AddressBook using ABAddressBookRef,ABRecordRef now i wanted to display the added contact ABPersonViewController is the method but how to use in ...

将音频Clips从Peter改为服务器

我不禁要问,那里是否有任何实例表明从Peit向服务器发送音响。 I m不关心电话或SIP风格的解决办法,只是一个简单的袖珍流程......

• 如何将搜查线重新定位?

我正试图把图像放在搜索条左边。 但是,问题始于这里,搜索条线不能重新布署。

热门标签