【问题标题】:Use a UITableViewCell as tableHeaderView使用 UITableViewCell 作为 tableHeaderView
【发布时间】:2014-04-16 19:43:10
【问题描述】:

我想使用自定义 UITableViewCell 作为我的 TableView 的 tableHeaderView。我没有在 SO 上找到任何这样的例子,也许这是不可能的。我在 viewDidLoad 中尝试了以下代码的几个版本:

cNib = [UINib nibWithNibName:@"HeaderUserLoggedOutCell" bundle:nil];
[self.menuTableView registerNib:cNib forHeaderFooterViewReuseIdentifier:@"HeaderUserLoggedOutCell"];
UIView *headerView = [[UIView alloc] initWithFrame:CGRectMake(20, 0, self.menuTableView.frame.size.width, 40.0)];
HeaderUserLoggedOutCell *userLoggedOutCell = [[HeaderUserLoggedOutCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:@"HeaderUserLoggedOutCell"];
userLoggedOutCell.frame = CGRectMake(111, userLoggedOutCell.frame.origin.y+20, self.view.frame.size.width, userLoggedOutCell.frame.size.height);
[headerView addSubview:userLoggedOutCell];
self.menuTableView.tableHeaderView = headerView;

我的 Xib 文件中的标签不显示。我认为这个 Nib 注册更多的是用于节标题,但我不确定,所以我尝试了。

谢谢

【问题讨论】:

  • HeaderFooterView 用于表格部分的页眉和页脚。不是表格视图的页眉和页脚。

标签: ios objective-c uitableview tableheader


【解决方案1】:

不确定您是如何设置自定义单元格的,但如果它有与之关联的笔尖,您可以这样做:

HeaderUserLoggedOutCell *userLoggedOutCell = [[[NSBundle mainBundle] loadNibNamed:@"HeaderUserLoggedOutCell" owner:self options:nil] objectAtIndex:0];
// customize your cell in whatever way you need to
self.menuTableView.tableHeaderView = userLoggedOutCell.contentView;

无需将自定义单元格添加到单独的 UIView。

【讨论】:

  • 实际上我需要将我的单元格添加到单独的 UIView 中。我花了两天时间试图理解为什么我的细胞随机出现。我找到了解决方案here
猜你喜欢
  • 2020-04-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-07
  • 2021-08-20
  • 2015-10-24
  • 1970-01-01
  • 2011-06-19
相关资源
最近更新 更多