0

我想在一个包含标题和段落的 ios 应用程序中编写一个视图。它看起来很像带有 h1 标签和 p 标签的 HTML 页面,我如何让它们在 iOS 中看起来像这样?我应该使用哪些控件?我更喜欢使用 UI Builder 而不是代码中的动态对象的答案。

我尝试的是使用标签,但效果不佳。

4

2 回答 2

1

Why didn't labels work? I would recommend subclassing UIView to hold two labels (heading and paragraph) and style them appropriately. You'll need to specify what your issues with the labels were and what exactly you're trying to accomplish if you need further advice.

于 2012-11-26T17:15:18.230 回答
1

这样做的长期方法是使用多个标签(UILabel),每个标签都有不同的样式/字体/颜色。这并不难,但是对于多行标签,iOS 会尝试为您垂直居中文本,因此您必须在代码中布置标签的高度,使用sizeWithFont:forWidth:lineBreakMode:,然后您必须在代码中正确定位标签。

我必须强调,这并不难做到。这很乏味,但它有效。

但是,在 iOS 6 中,问题完全解决了:您可以只使用 NSAttributedString。这使您可以创建一个由不同样式/字体/颜色的多个段落组成的字符串,这是一种真正的方式,我们之前尝试使用多个 UILabel 对象进行模拟。您可以指定边距、段落之间的间距等 - 整个作品。这是梦幻般的。

我建议您观看有关 iOS 6 中属性字符串的 WWDC 2012 视频。但是,不要相信他们反复强调 UILabel 是您显示属性字符串的权力所在。例如,我发现在重写我的应用程序时,多段属性字符串并不总是能很好地与 UILabel 配合使用。因此,我发现最简单的方法drawRect:是使用新的 NSAttributedStringdrawWithRect:options:context:方法直接在自定义视图中绘制属性字符串。

于 2012-11-26T17:27:02.900 回答