【问题标题】:Changing the height of a tableHeaderView hides the cells更改 tableHeaderView 的高度会隐藏单元格
【发布时间】:2011-07-25 23:08:42
【问题描述】:

在我的 UITableView 中,我有一个应该根据内容调整自身大小的 tableHeaderView。调整大小工作正常,但是 tableHeaderView 掩盖了前几个单元格。显然更改 tableHeaderView 的框架不会重新组织视图的其余部分。

我已经尝试调用[self.tableView layoutSubViews][self.tableView setNeedsLayout],但这些也无济于事。还尝试为 Interface Builder 中的 tableHeaderView 提供一个出口来更改其上的框架,但这也不会重新组织 tableView。

如何改变 tableHeaderView 的大小,而不隐藏任何单元格,重新组织 tableView 的其余部分?

【问题讨论】:

  • 尝试在你的viewForheaderInSection中输入[myView setClipsToBounds:YES];然后你就可以看到你查看的尺寸是多少

标签: iphone uitableview layout frame


【解决方案1】:

调整内容大小后,尝试设置 UITableView 的 tableHeaderView 属性。

[self.tableView setTableHeaderView:self.myResizedTableHeaderView];

为我解决了这个问题。希望对您有所帮助。

【讨论】:

  • 特别是对我来说,我将尺寸调整推迟到 viewWillAppear:因为我的控制器是动态实例化的,因此在此之前没有合适的几何图形可供参考。
【解决方案2】:

我不知道你是如何创建 UITableView 的,但我尝试创建一个像你一样的 tableHeaderView 并且它正在调整大小。

我创建了一个继承自 UITableViewController 的类

@interface MyTableViewController : UITableViewController {

}

@end

为了实现,我在 viewDidLoad 中添加了:

UIView *header = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 100)];
[header setBackgroundColor:[UIColor redColor]];
self.tableView.tableHeaderView = header;

【讨论】:

  • 我通过带有 nib 文件的 TableViewController 创建了 TableView。在那里,我为 tableHeaderView 添加了一个视图,并插入了一个包含内容的标签。我通过调整 IBOutlet 来更改内容和标签框架。但是对 tableHeaderView IBOutlet 做同样的事情,不会重新组织 tableview。
  • 最后我用了这个方法,没有在Interface Builder中创建视图。谢谢!
  • 嘿!为什么我在viewDidLoad中添加了相同的行,却看不到上面的红色块?!
  • 很好的答案,但如果你不从 UITableViewController 继承它并不能解决问题。
  • 这么奇怪的问题 :( 花了一天时间弄清楚。在 viewController + tableView 中使用带有动态内容的 tableHeaderView 是错误的。tableHeaderView 是重叠单元格,阻塞用户交互,didSelectRow 等等......切换从 UIViewController + tableView 到 UITableViewController 对我有用 :) 非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多