我想在 iOS 应用程序中编写一个包含标题和段落的 View 。它看起来很像带有 h1 标签和 p 标签的 HTML 页面,我如何使它们在 iOS 中看起来像那样?我应该使用什么控件?我更喜欢使用 UI Builder 而不是代码中的动态对象的答案。
我尝试过使用标签,但效果不佳。
最佳答案
执行此操作的长期方法是使用多个标签 (UILabel),每个标签具有不同的样式/字体/颜色。这并不困难,但对于多行标签,iOS 会尝试为您将文本垂直居中,因此您必须在代码中布置标签的高度,使用 sizeWithFont:forWidth:lineBreakMode:
,以及那么您必须在代码中正确定位标签。
我必须强调,这并不难做到。这很乏味,但很管用。
但是,在 iOS 6 中,问题完全解决了:您可以只使用 NSAttributedString。这使您可以创建一个 字符串,该字符串由不同样式/字体/颜色的多个段落组成,这是一种真正实现我们之前尝试使用多个 UILabel 对象模拟的方法。您可以指定页边距、段落间距等 - 全部有效。太棒了。
我建议您观看有关 iOS 6 中的属性字符串的 WWDC 2012 视频。但是,不要相信他们反复强调的 UILabel 是您显示属性字符串的核心。例如,我发现在重写我的应用程序时,多段落属性字符串并不总是能很好地与 UILabel 配合使用。所以我发现通过使用新的 NSAttributedString drawWithRect:options:context:
方法直接在自定义 View 的 drawRect:
中绘制属性字符串最简单.
关于iOS显示标题和段落,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13569729/