如何在Xamarin iOS(Monotouch)中添加静态表

时间:2013-04-13 09:06:42

标签: ios uitableview xamarin.ios xamarin

我正在尝试将单元格添加到我使用storyboard创建的静态表中。我希望能够从代码中动态地将单元格添加到它的一个部分,我实现了一个自定义的UITableViewSource,但它不断覆盖我的静态单元格。我应该如何实现GetCell()方法,以便它也适用于静态单元格?在ObjectiveC中看起来可以通过以下方式完成:

return [super tableView:tableView numberOfRowsInSection:section]

但是如何在Xamarin iOS中实现它?

1 个答案:

答案 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版本崩溃。