日期:2010-01-13  浏览次数:20415 次

为什么要定制表格?

  表格在很多iPhone应用程序中都是必需的UI元素。虽然对于应用程序开发而言,这并非是一项新发明,鉴于设备尺寸等方面的限制,表格在iPhone中的功能是非常固定的。

  苹果在其SDK中,直接内置了很多风格来让你定制表格。不过,在你最初创建表格的时候,它看起来非常简单。在没有进行任何定制的时候,你可以为表格选择两种基本风格,默认风格和分组风格:

在MonoTouch中自定义表格

  在对表格中的单元格进行一点调整后,你就可以添加图标和说明文字:

在MonoTouch中自定义表格

  你甚至能改变单元格的字体和颜色,然而,有时候这样还是不足够。如果你真的想完全改变基本的风格,创建一个复杂的UI,那么你必须创建自己的自定义单元格控件。下面的截图是定制后的效果,这个应用程序使用完全定制的单元格来显示内容:

在MonoTouch中自定义表格

  幸好,苹果让我们有便捷的方法来完成这样的定制,就是允许我们创建自己的定制UITableViewCell 控件,并把其用于UITableView 控件中。下面,让我们来逐步创建一个应用程序,学习如何利用UITableView 和UITableViewCell 控件来创建上图所示效果的例子。

  示例应用程序

  那么接下来,我们就来创建应用程序。首先,打开MonoDevelop,如下图所示:

在MonoTouch中自定义表格

  接着,新建一个iPhone MonoTouch项目。从“File”菜单中,选择“New Soluton”:

在MonoTouch中自定义表格

  从C# iPhone 模板中选择“iPhone Window-based Project”,输入解决方案的名称“Example_CustomUITableViewCells”:

在MonoTouch中自定义表格

  在项目特性对话框上点击“OK”,这些内容和我们要做的应用程序无关:

在MonoTouch中自定义表格

  我们的项目现在创建好了,如下图所示:

在MonoTouch中自定义表格

  通过在Solution Explorer窗口里双击MainWindow.xib,以便在Interface Builder中打开它,之后你会看到如下内容:

在MonoTouch中自定义表格

  我们首先拖一个UITableView控件到我们的MainWindow中,效果如下:

在MonoTouch中自定义表格

  我们需要在AppDelegate类中添加一个outlet,以便我们能编程访问这个Table View。

  在Library窗口中,选择顶部的“Classes”标签页,接着在下拉列表中选择“Other Classes”。确保AppDelegate已经选中,在Library窗口的下半部点击“Outlets”标签页:

在MonoTouch中自定义表格

  让我们来创建一个名为“tblMain”的outlet,通过点击“+”按钮,在名称列输入“tblMain”,你的outlet应该类似下图的:

在MonoTouch中自定义表格

  接着,把outlet关联到我们之前添加的UITableView上。在Document窗口中选择AppDelegate,在Connections Inspector窗口中,就会看到新创建的tblMain  outlet:

在MonoTouch中自定义表格