使用MonoTouch.SQLite简化用户界面开发

openkk 12年前
     <p> 当你使用 iOS 和 MonoTouch 时,可能需要显示一个 SQLite 表中的数据。虽然你可以通过构建 UITableViewController 来完成数据显示,但是整个过程相当耗时,并且需要相当多的样板代码。Jeffrey Stedfast 找到了一种方法,通过借助 MonoTouch.SQLite 可以将简单的表格绑定减少为一个单个方法。</p>    <p> MonoTouch.SQLite 是一个数据库感知的 UI 库,旨在简化表格数据显示。<a href="/misc/goto?guid=4958334908862383815">SQLiteTableModel</a> 模型类是 MonoTouch.SQLite 的底层基础。该模型提供了现成的带有排序和过滤的基础表格访问,因此当使用它显示简单数据时,你不需要做任何操作。但如果需要使用复杂的 SQL 语句,你可以实现它的子类并重写其中的 SQL 生成方法。</p>    <p> 套件(stack)的下一个部分是控制器本身。对于那些还不是 iOS 开发人员的用户,需要知道 Apple 的 UI 库必须严格遵循经典的 MVC 模式。这意味着类似表格的视图需要继承自 <a href="/misc/goto?guid=4958334909673429205">UITableViewController</a> 类。MonoTouch.SQLite 通过其子类 <a href="/misc/goto?guid=4958334910482423724">SQLiteTableViewController</a> 处理了大部分细节。在<a href="/misc/goto?guid=4958334911287228283">示例程序</a>中,你会看到只要实现 GetCell 方法即可。</p>    <p> <strong>终端用户查找</strong></p>    <p> 为了让终端用户更轻松地查找信息,MonoTouch.SQLite 可将用户输入的字符串转换为自定义的 SQL where 子句。要做到这一点,用户只要简单地使用特性 SQLiteSearchAlias 标记它们的数据模型属性。同一个别名(alias)可使用多次,例如 FirstName 和 LastName 都可能被标记为别名”name”,而后当用户输入 address:"Newton, MA" name:Jane’时,MonoTouch.SQLite 会生成一个 where 子句,并在 address 列和 name 列中查找匹配。</p>    <p> 此外,iOS <a href="/misc/goto?guid=4958334912088720194">UISearchDisplayController</a> 包装了前面提及的 UITableViewController,使用它可以完成所有的这些工作。</p>    <p> <strong>查看英文原文:</strong><a href="/misc/goto?guid=4958334912884146217">Simplified UI Development with MonoTouch.SQLite</a><br /> 来自: <a id="link_source2" href="/misc/goto?guid=4958334913676487266" target="_blank">InfoQ</a></p>