这是我的xib文件:
正如您所看到的,我有UITableView
tableHeaderView
(橙色)!在运行时期间显示的所有内容都是正确的,除非标题Label有多个Line,而UILabel
得到的内容通常为“..”。我已将numberOfLines
更改为0!
我认识到问题是整个表HeaderView的高度!这就是我如何计算代码中的高度:
[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太小而无法显示标题Label的2或3或4 ...行。可能是什么问题?
答案 0 :(得分:1)
我认为您正在努力将内容放入tableview标题中,该标题旨在包含相对较小的静态内容。
假设你想要的是你的桌面视图留在橙色视图的底部,橙色视图用桌面视图滚动(即不是一直停留在屏幕的顶部),我会添加一个滚动条查看橙色视图和tableview的父级,并禁用tableview滚动功能。
然而,这意味着将UITableViewController替换为UIViewController。
例如
-- UIScrollView
|
-- UIView (orange view)
| |
| -- subview 1
| -- subview 2
| -- etc.
|
-- UITableView (scrollEnabled = NO)
使用AutoLayout,您可以自动调整橙色视图的大小以适应其内容,这将"推送" UITableView下来。 当用户垂直滑动时,根scrollview将捕获事件,并相应地滚动整个(orangeView + tableView),从而产生与橙色视图是表视图标题相同的效果。