我有一个VC,可以用一个tableView来调用它“DetailsVC”,这个行将具有不同高度的行。
“DetailsVC”作为Subview添加到另一个名为“MainVC”的VC
在“DetailsVC”
中- (void)viewDidLoad
{
[super viewDidLoad];
self.automaticallyAdjustsScrollViewInsets = YES;
[self.tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:CellIdentifier];
self.tableView.rowHeight = UITableViewAutomaticDimension;
}
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[self.navigationController setNavigationBarHidden:NO animated:animated];
}
- (void)viewDidLayoutSubviews
{
[super viewDidLayoutSubviews];
self.tableViewHeightConstraint.constant = self.tableView.contentSize.height;
[self.tableView needsUpdateConstraints];
CGFloat containerHeight = CGRectGetHeight(self.tableView.bounds) + self.addressLabelHeightConstraint.constant;
[self.tableViewdelegate punchDetailsController:self didUpdateTableViewWithHeight:containerHeight];
[self.contentView layoutIfNeeded];
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
return UITableViewAutomaticDimension;
}
- (CGFloat)tableView:(UITableView *)tableView estimatedHeightForRowAtIndexPath:(NSIndexPath *)indexPath{
return UITableViewAutomaticDimension;
}
这在iOS 8及更高版本中运行良好,在iOS 7或7.1中不起作用
tableview的高度显示为ZERO并且根本不显示tableview。
我理解“UITableViewAutomaticDimension”是iOS 8的一部分,在iOS 7中不可用。
我应该使用什么其他方法来使用iOS 7和iOS 8.
答案 0 :(得分:0)
我认为您只需要检查操作系统版本,并且低于8,手动计算单元格的高度并返回它。
此外,出于性能原因,iOS 7会返回一个常量,或者只是不实现estimatedHeightForRowAtIndexPath
Ž。