iOS UI最佳实践 - UILabel还是UITextView?

28
如果要创建一个用于显示博客文章的iPhone应用程序的UIView,你会推荐使用哪个UI组件来显示文章正文?是将numberOfLines设置为0的UILabel还是没有滚动条和固定尺寸的UITextView
为什么?

我同意下面@Vishnu Kumar的答案:我需要为我的应用程序显示一个“工具提示”,最简单的方法是使用UITextView,并将isEditable设置为false(使其静态)。 - toraritte
3个回答

41

更新:如我在下面评论所说,我同意这不是现在最好的答案。这更适用于2013年,但今天您应该为大型文本字段使用文本视图。由于它是已接受的答案,我无法删除它,但我同意(并投票支持)下面Vishnu的答案。

这有点取决于你要做什么。

如果您需要显示没有编辑功能和选择功能的静态文本,您应该使用UILabel,如果必要,将其放置在UIScrollView中。

如果需要选择或编辑,请使用UITextView


嘿,Garret!这完全说得通。谢谢你的答案。 - Gustavo Barbosa
我认为你的答案是错误的,请看一下以下的答案。 - Vishnu Kumar. S
@Vishnu在下面的回答中提供了适用于iOS的文本编程指南(Text Programming Guide for iOS)。它甚至建议如何查看网页内容,例如博客文章(引用:“使用Web视图显示Web内容”)。 - toraritte
同意这不是最好的答案。它在2013年更准确,但今天你应该使用文本视图来处理大文本字段。我不能删除它,因为它是被接受的答案,但我同意(并投票支持)下面Vishnu的答案。 - garrettmurray
但是你不能为文本视图指定自动换行内容;你如何使它仅适合所呈现的单词? - pete

26

很抱歉回复晚了,但这可能会对某些人有所帮助。

根据苹果的 iOS 文本编程指南,UILabel定义了一个标签,用于显示静态文本字符串。UITextField定义了一个文本字段,用于显示单行可编辑文本。UITextView定义了一个文本视图,用于显示多行可编辑文本。尽管这些类实际上可以支持任意数量的文本显示,但标签和文本字段通常用于相对较小的文本量,通常是单行文本。另一方面,文本视图旨在显示大量文本。

要了解更多信息,请参阅:iOS 文本编程指南


7
你会推荐哪个UI组件来显示文章正文? 将numberOfLines设置为零的UILabel还是没有滚动和固定大小的UITextView?
让我们参考苹果官方 文档,了解应用程序中文本内容的使用指南。
根据文档,UIKit框架提供了三个主要类来在应用程序用户界面中显示文本内容:UILabelUITextFieldUITextView
下面这句话暗示了可能针对特定用例的建议:
尽管这些类实际上可以支持任意数量的文本显示,但标签和文本字段旨在用于相对较小的文本量,通常是一行。而另一方面,文本视图则用于显示大量文本。
如果我们考虑展示文章的使用情况,可以合理地假设它将具有大量文本内容。因此,如果我们应用以上准则,UITextView 似乎是更好的工具。
接下来,当用户阅读文章时,UITextView 具有可选文本。这意味着用户可以复制文章中的特定行或让设备朗读文本。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接