简短而甜蜜:我的最终目标是,使用一个带有两个单词的UILabel,以粗体显示一个单词,以正常字体显示另一个单词。我发现的所有解决方案都在我头上! :(
更多细节:
前一天我asked a question没有给出我希望得到的答案,现在看来我需要使用UITableViewController和来自ABAddressBook的内容重新创建ABPeoplePickerNavigationController。如果您阅读我之前的问题并且可以提出更好的解决方案,真棒!如果不是......
当我重新创建PeoplePicker时,我真的想要完全模仿Apple的默认实现,尤其是它们如何在同一标签中使用粗体和普通字体作为联系人名称。
现在,我知道在SO和其他地方已经问了很多这个问题。许多人都有这种需求,解决方案各不相同:
解决方案#2,#3和#4似乎是最强大的,根据我在其他问题中所读到的,这就是Apple实际上是如何做到的。不幸的是,这些技术目前还有点过头,而且我很难跟踪我在网上找到的有限数量的细节。我还没有做过任何关于明确绘图的事情。
有人自己实现了这个吗?您可以提供哪些代码示例来帮助我掌握这些更高级的技术?
谢谢!
答案 0 :(得分:2)
有第6种解决方案。使用2个UILabels。使用粗体文本以粗体创建一个,并要求其大小适合。然后,一旦你完成了它,你就可以创建第二个并将它放在第一个旁边。
答案 1 :(得分:0)
你应该阅读“适用于iOS的表视图编程指南”,有一个标题为“Subclassing UITableViewCell”的部分,它完全符合你的要求(即绘制不同属性的字符串)。
答案 2 :(得分:0)
所以,为了解决这个问题,我最终找到了第7个选项。 :)
我和OHAttributedLabel一起去了。我仍然无法绕过UIStringDrawing方法或覆盖子类UILabel中的drawRect;我认为那些将是最干净的解决方案。但是,OHAttributedLabel看起来很结实,超轻量级,并且完全符合我的需要。
祝你好运!如果有人发现更多解决方案,或者想要更详细地解释UIStringDrawing或drawRect,请随时发布!<强>更新强>
我一直在使用Matt Thompson的TTTAttributedLabel并且对它非常满意。 https://github.com/mattt/TTTAttributedLabel