我正在尝试将单元格添加到我使用storyboard创建的静态表中。我希望能够从代码中动态地将单元格添加到它的一个部分,我实现了一个自定义的UITableViewSource,但它不断覆盖我的静态单元格。我应该如何实现GetCell()方法,以便它也适用于静态单元格?在ObjectiveC中看起来可以通过以下方式完成:
return [super tableView:tableView numberOfRowsInSection:section]
但是如何在Xamarin iOS中实现它?
答案 0 :(得分:0)
我能够使用此代码使其工作:
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;
}
}
看起来有点奇怪,你可能最好使用动态表。我试过的一件事不起作用就是修改一个部分中的单元格数 - 这似乎直接与UITableView
内的“索引超出范围”的Obj-C版本崩溃。