在某些设备上重置 TableView 框架

TableView frame being reset on some devices

我有一个 UIViewController,它在底部包含一个 TableView 和一个 GADBannerView。收到广告后,我会更改 TableView 的高度,这样广告就不会覆盖任何单元格。这在我的 iPhone 6 (iOS 10) 和模拟器 (iOS 10) 上没有任何问题,但出于某种原因在旧 iPhone 上测试我的应用程序时4 秒(iOS 9),如果我离开视图控制器然后 return 到它,TableView 高度会重置。为什么会发生这种情况,我该如何预防?

这是我用来调整表格视图大小的代码。

- (void)adViewDidReceiveAd:(GADBannerView *)view {

   if (!adRecieved) {

    view.hidden = NO;
    CGRect currentRect = self.tableView.frame;
    currentRect.size.height -= CGRectGetHeight(view.frame);
    self.tableView.frame = currentRect;

    adRecieved = YES;
}

我只是通过编辑 table 视图约束解决了这个问题。现在它在所有设备上的行为方式相同。

- (void)adViewDidReceiveAd:(GADBannerView *)view {

    if (!adRecieved) {

        view.hidden = NO;

        self.tableViewBottom.constant = -50;

        adRecieved = YES;
    }
}