iOS自动调整UITableViewHeaderFooterView.ContentView子视图中的自定义单元格宽度
Posted
技术标签:
【中文标题】iOS自动调整UITableViewHeaderFooterView.ContentView子视图中的自定义单元格宽度【英文标题】:iOS Auto-resize custom cell width in UITableViewHeaderFooterView.ContentView Subview 【发布时间】:2016-12-12 11:22:21 【问题描述】:我创建了一个自定义单元格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 纵向模式:
如何让自定义单元格自动调整宽度?
【问题讨论】:
【参考方案1】:我终于通过在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;
【讨论】:
以上是关于iOS自动调整UITableViewHeaderFooterView.ContentView子视图中的自定义单元格宽度的主要内容,如果未能解决你的问题,请参考以下文章
没有自动布局的 IOS11 的 Tableview 高度调整
UITextView自动调整大小以调整单行iOS Objective -C