iOS 7.1不允许动态tableview高度

时间:2015-09-25 17:35:25

标签: uitableview ios8 autolayout ios7.1 ios-autolayout

我有一个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.

我的问题类似于https://stackoverflow.com/questions/29425782/ios7-0-and-ios-7-1-doesnt-honor-dynamic-tableview-height

1 个答案:

答案 0 :(得分:0)

我认为您只需要检查操作系统版本,并且低于8,手动计算单元格的高度并返回它。 此外,出于性能原因,iOS 7会返回一个常量,或者只是不实现estimatedHeightForRowAtIndexPath

Ž。