我正在尝试将单元格添加到使用情节提要创建的静态表中。我希望能够从代码动态地将单元格添加到其中的一个部分,我实现了一个自定义 UITableViewSource 但它不断覆盖我的静态单元格。我应该如何实现 GetCell() 方法,以便它也可以与静态单元格一起使用?看起来在ObjectiveC中可以通过以下方式完成:
return [super tableView:tableView numberOfRowsInSection:section]
但是如何在 Xamarin iOS 中实现呢?
我正在尝试将单元格添加到使用情节提要创建的静态表中。我希望能够从代码动态地将单元格添加到其中的一个部分,我实现了一个自定义 UITableViewSource 但它不断覆盖我的静态单元格。我应该如何实现 GetCell() 方法,以便它也可以与静态单元格一起使用?看起来在ObjectiveC中可以通过以下方式完成:
return [super tableView:tableView numberOfRowsInSection:section]
但是如何在 Xamarin iOS 中实现呢?
我能够使用以下代码使其工作:
public partial class StaticTableController : UITableViewController
{
public StaticTableController (IntPtr handle) : base (handle)
{
}
[Export("tableView:cellForRowAtIndexPath:")]
public UITableViewCell GetCell(UITableView tableView, NSIndexPath indexPath)
{
var selector = new Selector("tableView:cellForRowAtIndexPath:");
//WTF?
var cell = new UITableViewCell(Messaging.IntPtr_objc_msgSendSuper_IntPtr_IntPtr(SuperHandle, selector.Handle, tableView.Handle, indexPath.Handle));
if (indexPath.Row == 2)
{
cell.TextLabel.Text = "Dynamic thingy";
}
return cell;
}
}
看起来有点奇怪,你最好改用动态表。我尝试过但不起作用的一件事是修改一个部分中的单元格数量——这似乎直接与 Obj-C 版本的“索引超出范围”内部崩溃UITableView
。