objective-c - Apple 如何在 ABPeoplePickerNavigationController 中为联系人姓名使用粗体和普通字体

标签 objective-c ios core-data uilabel abaddressbook

简短而贴心:
我的最终目标是,使用一个带有两个单词的 UILabel,以粗体显示一个单词,另一个以普通字体显示。我找到的所有解决方案都超出了我的头脑! :(

更多详情:
asked a question前几天没有给我我希望的答案,现在看来我需要使用 UITableViewController 和 ABAddressBook 中的内容重新创建 ABPeoplePickerNavigationController。如果您阅读了我之前的问题并且可以提出更好的解决方案,那就太棒了!如果不是...

当我重新创建 PeoplePicker 时,我真的想完全模仿 Apple 的默认实现,尤其是他们如何在同一标签中为联系人姓名同时使用粗体和普通字体。

现在,我知道这个问题在 SO 和其他地方已经被问了很多。很多人都有过这种需求,解决方法也各不相同:

  1. use a webview
  2. use the UIStringDrawing methods
  3. subclass UILabeloverride drawrect
  4. 深入研究 CoreText
  5. 使用 ThreeTwenty 库
  6. 使用两个 uilabel,创建一个粗体,一个正常,并将它们并排放置(然后需要我子类化 UITableViewCell 才能放置两个标签

解决方案 #2、#3 和 #4 似乎是最可靠的,而且根据我在其他问题中读到的内容,Apple 实际上就是这样做的。不幸的是,目前这些技术有点让我头疼,而且我很难理解我在网上找到的有限的细节。我还没有真正用显式绘图做任何事情。

有没有人自己实现过这个?您可以提供任何代码示例来帮助我掌握这些更高级的技术吗?

谢谢!

最佳答案

还有第 6 种解决方案。使用 2 个 UILabel。用粗体字创建一个,并要求它的大小适合。布置好后,您可以创建第二个并将其紧挨着第一个放置。

关于objective-c - Apple 如何在 ABPeoplePickerNavigationController 中为联系人姓名使用粗体和普通字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5280433/

相关文章:

swift - 多个 CoreData 实体的通用函数

iphone - 如何禁用导航的右栏按钮

iphone - iOS 上的实时视频清理

iphone - 使用 KeyChainItemWrapper 在 KeyChain 中存储 key

ios - 设备方向在 iOS 中无法正常工作

ios - 为什么这会破坏 UILabel adjustsFontSizeToFitWidth?

ios - uitextfield selected 更改状态栏颜色

ios - iOS 10.3 中的备用图标 : avoid notification dialog for icon change

ios - 在 Swift 中用自定义对象填充数组

ios - NSFetchedResultsController 加载整个数据和糟糕的性能