在 MonoTouch 中使用 UITableViewDataSource 填充一个简单的 UITableView -
本文关键字:一个 简单 UITableView MonoTouch 填充 UITableViewDataSource | 更新日期: 2023-09-27 18:33:09
到目前为止,我很喜欢MonoTouch,但是一旦你通过了几个初学者课程,就会发现缺少文档和示例。
我正在努力解决在MonoTouch中填充简单UITableView的简单概念。 我已经看到了使用自定义单元格执行此操作的示例,并使用不同的信息广泛自定义列表,但我只是在寻找如何实现这个简单事情的最低限度。 我是一名专业的 .NET 开发人员,对 iOS 非常陌生,所以仍然对它的工作原理感到困惑。
我只想要以下内容。创建项目列表将该项列表分配给 UITableView 以允许用户滚动列表。 寻找一个非常简单的例子。
我正在努力解决的最大问题是创建一个UITableViewDataSource对象。 它是抽象的,所以我无法创建它的实例。 我可以创建自己的继承它的类,但我正在寻找框架中的具体实现,而无需创建自己的实现。 我是否被 .NET 宠坏了,必须为它创建一个新类,或者它是否存在于框架中的某个地方而我只是找不到它?
[在这里回答]我找到了答案,但 StackOverflow 不会让我以低于 100 的声誉回答我自己的问题,或者除非我等待 8 小时,我不愿意这样做。 答案如下:
我创建了以下继承 UITableViewSource 的类。 这样做是必需的。 GetCell 控制如何在表格上呈现单元格。
创建此实例并传入要填充的字符串列表。
这个例子来自(我稍微修改了一下(我正在从Wrox出版社读的书 - "专业iPhone编程与MonoTouch和.NET C#">
public class TableViewSource : UITableViewSource
{
private List<string> rows;
public TableViewSource (List<string> list)
{
rows = list;
}
public override int RowsInSection (UITableView tableview, int section)
{
return rows.Count;
}
public override UITableViewCell GetCell(UITableView tableView, NSIndexPath indexPath)
{
UITableViewCell cell = new UITableViewCell(UITableViewCellStyle.Default,"mycell");
cell.TextLabel.Text = rows[indexPath.Row];
return cell;
}
}
将以下代码放在屏幕上的 ViewDidLoad 中。
var list = new List<String>()
{
"San Francisco",
"Buenos Aires",
"São Paulo"
};
TableViewSource tableData = new TableViewSource(list);
this.tblTrips.Source = tableData;
这给了我正在寻找的东西,而不需要深入研究MonoTouch.Dialog。
UITableView
以及关联的委托和数据源类型不是一个非常友好的 API - 对于典型的 .NET 开发人员来说更是如此。有时需要它,但在大多数情况下,您会想要使用更简单的东西。
创建项目列表 将该项目列表分配给 UITableView 以允许用户滚动列表。寻找一个非常简单的例子。
这似乎符合MonoTouch.Dialog的目标。该程序集现在随 MonoTouch 一起提供,但您可以在 github 上找到示例源代码。
Xamarin的文档网站也有一个使用MonoTouch.Dialog的教程,还有一个不错的视频。