简体   繁体   中英

GetViewForHeader works in the simulator but not working on the device

So i have a GetViewForHeader override and it works great in the simulator. When I debug the app on the device (both iPad and iPhone) no styling is applied. There is no error and the GetViewForHeader code is definitely NOT being run. TitleForHeader etc is tho. Odd!

    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;
}

The GetViewForHeader method is only called if GetHeightForHeader returns a non-zero integer, so ensure you are implementing the GetHeightForHeader method and returning an appropriate height.

It's also worth noting that the TitleForHeader method should not be implemented if using header views.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM