这是我的xib文件:

如您所见,我有一个UITableViewtableHeaderView(橙色)!在运行时,所有内容均显示正确,除非标题Label多于一行,而不是UILabel用典型的“..”切断。我已经将numberOfLines更改为0!

我认识到问题是整个tableHeaderView的高度!这就是我在代码中计算高度的方式:

[self.headerView setNeedsLayout];
[self.headerView layoutIfNeeded];

CGFloat height = [self.headerView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize].height + self.headerView.frame.origin.y;

CGRect headerFrame = self.headerView.frame;
headerFrame.size.height = height;
self.headerView.frame = headerFrame;

[self.tableView setTableHeaderView:self.headerView];

但是在运行时,tableHeaderView太小,无法显示2或3或4 ...标题标签的行。可能是什么问题呢?

最佳答案

我认为您正在努力将内容容纳到tableview标头中,该标头旨在包含相对较小的静态内容。

假设您想要的是将tableview保留在橙色视图的底部,并且使橙色视图随tableview一起滚动(即,不一直处于屏幕顶部),我将添加一个滚动视图的父级橙色视图和表视图,并禁用表视图滚动功能。

但是,这意味着将您的UITableViewController换成UIViewController。

例如。

-- UIScrollView
  |
  -- UIView (orange view)
  | |
  | -- subview 1
  | -- subview 2
  | -- etc.
  |
  -- UITableView (scrollEnabled = NO)

使用AutoLayout,您可以使橙色视图自动调整大小以适合其内容,这将“推” UITableView。
当用户垂直滑动时,根滚动视图将捕获事件,并相应地滚动整个事件(orangeView + tableView),其效果与橙色视图是表视图标题一样。

关于ios - 使用自动布局计算tableHeaderView高度,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27900468/

10-12 14:42