MonoTouch.Dialog 是一个 UI 开发工具包,它旨在大幅度减少创建应用程序界面(screen)所需要的样板代码量。通过创造性地使用特性(attribute),MonoTouch.Dialog 可以根据类定义动态生成界面。当然,你也可以选择采用编程方式或从 JSON 文档中加载来进行创建。
MonoTouch.Dialog(或简称 MT.D)包含两套库。其中一套是低层次元素 API(low-level Elements API),它不仅允许开发人员定义元素层次树来表示界面及其组件,还允许动态创建 UI(类似于服务器生成的表单)。此外,它还支持加载基于 JSON 的界面定义。
另外一套库是高层次反射 API(high-level Reflection API),也叫做绑定 API(Binding API)。它使用标注类来声明式地构造用户界面。这些类可以既表示模型对象本身,也可以当做包装类使用。
MT.D 界面由四个部分组成。其中 DialogViewController 用作替换 iOS 标准的 TableViewController,两者具有相同的使用方式。接下去是 RootElement,它是一个包含节(Section)和元素(Element)的无渲染容器。其中节可以看作多个控件的逻辑分组,而元素表示单个数据绑定控件。
当使用反射 API 时,节和元素会按照源代码中声明的顺序进行布局。这意味着你必须禁用任何可能导致源文件中属性和方法重新排序的代码清理工具。
想要使用超过基本控件提供的功能, 高级开发人员可以学习怎样使用 OwnerDrawnElement 及 Element 基类。其中 OwnerDrawnElement 允许开发人员通过操作 CGContext 来定义他们自己的外观风格,而 Element 则给予开发人员完全的控制。
MonTouch.Dialog 中明确回避了数据验证的话题。一个建议是在用户按下“下一步”或者“完成”按钮时,手工地去实现和触发验证。
评论