Xamarin iOS TableView未显示

时间:2019-03-06 17:29:26

标签: c# uitableview xamarin.ios

我正在使用Xamarin制作适用于iOS的应用程序,但UITableViews遇到了一些麻烦,并找到了本教程:https://docs.microsoft.com/en-us/xamarin/ios/user-interface/controls/tables/populating-a-table-with-data

我创建了一个新项目,并按照他们的工作进行了,但是对我来说不起作用。我一定做错了,但我不知道该怎么办。

有人可以看看为什么不显示TableView吗?

BasicViewController:

public class BasicTableViewController : UIViewController
{
    private UIView view;

    public override void ViewDidLoad()
    {
        base.ViewDidLoad();

        var table = new UITableView(View.Bounds);
        table.Source = new BasicTableSource("aaaaaaaaa", "bbbbb", "cccccccc", "ddddddddddddd", "eeeee");
        Add(table);
    }

    public override void LoadView()
    {
        view = new UIView()
        {
            BackgroundColor = UIColor.White,
        };

        View = view;
    }
}

BasicTableViewSource:

public class BasicTableSource : UITableViewSource
{
    private readonly string[] items;

    public BasicTableSource(params string[] items)
    {
        this.items = items;
    }

    public override UITableViewCell GetCell(UITableView tableView, NSIndexPath indexPath)
    {
        var cell = tableView.DequeueReusableCell("cell");
        if (cell == null)
            cell = new UITableViewCell(UITableViewCellStyle.Default, "cell");

        cell.TextLabel.Text = items[indexPath.Row];

        return cell;
    }

    public override nint RowsInSection(UITableView tableview, nint section)
    {
        return items.Length;
    }
}

AppDelegate:

[Register("AppDelegate")]
public class AppDelegate : UIApplicationDelegate
{
    public override UIWindow Window { get; set; }

    public override bool FinishedLaunching(UIApplication application, NSDictionary launchOptions)
    {
        Window = new UIWindow(UIScreen.MainScreen.Bounds);
        Window.RootViewController = new BasicTableViewController();

        Window.MakeKeyAndVisible();

        return true;
    }
}

运行此项目时模拟器的外观: What the simulator looks like

1 个答案:

答案 0 :(得分:0)

原因:

当您覆盖方法LoadView时,似乎忘记了设置Frame的{​​{1}}。因此视图的大小将以Height为0,Width为0。 / p>

解决方案:

将视图框架设置为屏幕尺寸。

view