iOS Auto-resize UITableViewHeaderFooterView.ContentView 子视图中的自定义单元格宽度

iOS Auto-resize custom cell width in UITableViewHeaderFooterView.ContentView Subview

我创建了一个自定义单元格 PVIssueTypeSectionHeaderCell 并使用以下代码将其添加为 ContentView 视图中 header 的子视图:

public override UIView GetViewForHeader(UITableView tableView, nint section)
{
    var cell = (PVIssueTypeSectionHeaderCell)tableView.DequeueReusableCell(HeaderCellKey);
    if(cell == null)
    {
        cell = PVIssueTypeSectionHeaderCell.Create();
    }

    cell.ViewModel = this.GroupedIssueTypesFilter.ElementAt((int)section);

    var headerView = tableView.DequeueReusableHeaderFooterView(HeaderFooterViewKey);

    if (headerView == null)
    {
        headerView = new UITableViewHeaderFooterView(HeaderFooterViewKey);
    }

    headerView.ContentView.AddSubview(cell);

    return headerView;
}

但是自定义单元格的宽度并不像您在下面这些图片中看到的那样auto-resize。

这是 iPad 横向模式和 iPhone 纵向模式:

当这个处于iPad人像模式时:

如何让自定义单元格自动调整宽度?

我终于通过直接在 GetViewForHeader.

中返回自定义单元格的 ContentView 使其工作
public override UIView GetViewForHeader(UITableView tableView, nint section)
{
    var cell = (PVIssueTypeSectionHeaderCell)tableView.DequeueReusableCell(HeaderCellKey);
    if(cell == null)
    {
        cell = PVIssueTypeSectionHeaderCell.Create();
    }

    cell.ViewModel = this.GroupedIssueTypesFilter.ElementAt((int)section);

    return cell.ContentView;
}