这是我的xib文件:
如您所见,我有一个UITableView
和tableHeaderView
(橙色)!在运行时,所有内容均显示正确,除非标题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/