我能够得到它使用此代码的工作:
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版本崩溃。
我试图实现一个类似的东西,你在这里描述。唯一的区别是我的表是完全静态的,我希望在GetCell函数中访问它的单元格,但它永远不会被调用。我试图通过添加Export属性来解释您的答案,但它没有区别。我该如何解决它? – naffie