iOS在UITableViewHeaderFooterView.ContentView子视图中自动调整自定义单元格宽度
我创建了一个自定义单元格iOS在UITableViewHeaderFooterView.ContentView子视图中自动调整自定义单元格宽度,ios,iphone,ipad,xamarin.ios,uitableviewsectionheader,Ios,Iphone,Ipad,Xamarin.ios,Uitableviewsectionheader,我创建了一个自定义单元格PVIssueTypeSectionHeaderCell,并将其添加为标题视图中ContentView的子视图,其中包含以下代码: public override UIView GetViewForHeader(UITableView tableView, nint section) { var cell = (PVIssueTypeSectionHeaderCell)tableView.DequeueReusableCell(HeaderCellKey);
PVIssueTypeSectionHeaderCell
,并将其添加为标题视图中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);
var headerView = tableView.DequeueReusableHeaderFooterView(HeaderFooterViewKey);
if (headerView == null)
{
headerView = new UITableViewHeaderFooterView(HeaderFooterViewKey);
}
headerView.ContentView.AddSubview(cell);
return headerView;
}
但自定义单元格的宽度不会自动调整大小,如下图所示
这是在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;
}
通过直接在
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;
}