在iOS中显示文本内容 <- iOS文本编程指南

在iOS中的文本系统在保持易用性的同时提供大量强大的功能。UIKit框架包括了多个高级类来管理文本的显示和输入。UIKit还包括了用于显示HTML、CSS、以及基于JavaScript的web内容的类。

使用文本对象来显示文本内容

文本对象在一定范围的字体、样式、和尺寸中,显示样式化、格式化的文本。UIKit框架提供三种主要的类来在app的用户界面中显示文本内容:

  • UILabel 定义一个标签,它显示一个静态的文本字符串。
  • UITextField 定义一个文本字段,它显示一个单独行的可编辑文本。
  • UITextView 定义一个文本视图,它显示多行的可编辑文本。

尽管这些类确实能支持显示任意数量的文本,但是标签和文本字段还是经常被用于显示相关的少量文本,通常是一个单独行。另一方面,文本视图用来显示大量的文本。

文本视图对象,由UITextView类创建,显示格式化为段落、列、以及页的文本,具有精细排版的所有特征,例如字距、连字、复杂的换行、以及对齐。这些排版服务通过被称为Text Kit的底层技术(一种强大的布局引擎,易用且可扩展)提供给UITextView。更多关于Text Kit的信息,参见“使用Text Kit来绘制和管理文本”。

图1-1 显示了一个在屏幕上显示主要文本对象的例子。左图显示多种不同的文本字段样式,右图显示一个单独的文本视图。显示在背景上的是镶嵌在表单元格中的UILabel对象,用于显示不同视图。

图 1-1 在UICatalog应用中的文本类

在iOS中显示文本内容 <- iOS文本编程指南_第1张图片
Text classes in the UICatalog application

当使用可编辑的文本字段和文本视图时,你应该始终提供委托对象来管理编辑会话。文本视图发送多中不同的通知给委托,以便让它们知道编辑何时开始、何时结束、以及给它们一个机会来重写一些编辑行为。例如,委托可以判断当前文本是否包含有效值,如果没有,组织编辑会话结束。当编辑最终结束时,你还可以使用委托来得到文本值结果,并更新应用的数据模型。

因为在用途上细微差别,所以每个文本视图的委托方法也有细微差别。支持UITextField类的位委托实现UITextFieldDelegate协议的方法。类似的,支持UITextView类的委托实现UITextViewDelegate协议的方法。两种情况下,你并不一定要实现任何协议方法,但是,如果你不实现,文本字段或视图没有什么用处。

“管理文本字段和文本视图”描述了文本字段和文本视图的委托消息的顺序,并讨论了通过这些对象的委托方法执行的个中任务。更多关于UITextFieldDelegate和UITextViewDelegate协议方法的消息,参见UITextFieldDelegate Protocol Reference 和 UITextViewDelegate Protocol Reference。

使用web视图来显示web内容

一个web视图对象显示基于web的内容。它是WKWebView的实例,它允许你将基本上是小型浏览器整合到app的用户界面中。WKWebView类充分利用了和iOS中的Safari中一样的技术,包括完全支持HTML、CSS、以及JavaScript内容。该类还支持很多用户熟知的Safari的内置手势。例如。你可以双击和捏合来缩放页面,以及你可以通过用手指拖拽来滚动页面。

除了显示内容,你还可以使用web 视图对象通过使用web表单收集用户的输入。就像其他UIKit中的文本类一样,如果你在web页面上的表单中有一个可编辑的文本字段,点击该字段就会出现键盘,以便用户可以输入文本。因为这是wb体验的组成部分,web视图自身来管理键盘的显示和关闭。

一个web视图通过它的适当的委托对象,来提供关于页面合适加载、以及是否有加载错误的信息。Web委托是实现一个或多个WKUIDelegate或WKNavigationDelegate协议的方法的对象。你的这些委托方法的实现,可以响应故障,或者执行其他与web页面加载有关的任务。

你可能感兴趣的:(在iOS中显示文本内容 <- iOS文本编程指南)