GetViewForHeader在模拟器中工作,但不在设备上工作

时间:2014-05-12 09:56:54

标签: c# ios xamarin.ios xamarin

所以我有一个GetViewForHeader覆盖,它在模拟器中运行良好。当我在设备(iPad和iPhone)上调试应用程序时,不会应用任何样式。没有错误,GetViewForHeader代码肯定没有运行。 TitleForHeader等是你的。奇!

    public override string TitleForHeader (UITableView tableView, int section)
{
    return tableItems[section].Name;
}

public override UIView GetViewForHeader(UITableView tableView, int section)
{
    // THIS DOES NOT FIRE ON THE DEVICE - BUT IT DOES ON THE SIMULATOR
    return BuildSectionHeaderView(tableItems[section].Name);
}

public static UIView BuildSectionHeaderView(string caption) {
    UIView view = new UIView(new System.Drawing.RectangleF(0,0,320,20));
    view.BackgroundColor = UIColor.White;

    UILabel label = new UILabel();
    label.Opaque = false;
    label.TextColor = UIColor.FromRGB (190, 0, 0);
    label.Font = UIFont.FromName("Helvetica-Bold", 16f);
    label.Frame = new System.Drawing.RectangleF(5,10,315,20);
    label.Text = caption;
    view.AddSubview(label);
    return view;
}

1 个答案:

答案 0 :(得分:1)

仅在GetViewForHeader返回非零整数时调用GetHeightForHeader方法,因此请确保您实现GetHeightForHeader方法并返回适当的高度。

还值得注意的是,如果使用标题视图,则不应实现TitleForHeader方法。