Первая ячейка UITableview прокручивается за панелью навигации в iOS 10 - PullRequest
0 голосов
/ 20 мая 2018

Я представляю всплывающее окно (myCustomViewController.m), когда загружается мой viewcontroller.Всплывающее окно представляет собой viewcontroller, который имеет табличное представление.Ниже приведен мой код, показывающий, как я показываю всплывающее окно.

- (void)showTableviewpopup{

   myCustomViewController *myVC = [myCustomViewController controller];
    myVC.delegate = self;
    UINavigationController *navCtrl = [[UINavigationController alloc] initWithRootViewController: myVC];
    navCtrl.modalPresentationStyle = UIModalPresentationFormSheet;

    dispatch_async(dispatch_get_main_queue(), ^{
        [self presentViewController:navCtrl animated:YES completion:NULL];
    });
}
//This is how myCustomViewController interface looks like
    @interface myCustomViewController : UIViewController <UITableViewDataSource, UITableViewDelegate>

Теперь, когда это всплывающее окно загружается, первая ячейка таблицы просматривается за панелью навигации, и нет способа ее опустить.Это хорошо работает на iOS 11, но имеет проблемы на iOS 10. Если я добавлю приведенный ниже код, это исправит проблему в iOS 10, но добавит дополнительное пространство в iOS 11.

- (void)viewDidLayoutSubviews {
    UIEdgeInsets insets = UIEdgeInsetsMake(self.topLayoutGuide.length, 0, 0, 0);
    self.tableView.contentInset = insets;
    self.tableView.scrollIndicatorInsets = insets;
}

Другое решение - поставить галочкудля iOS 11, прежде чем применять этот код, но есть ли лучший способ решить эту проблему?

1 Ответ

0 голосов
/ 20 мая 2018

Другое решение - поставить проверку iOS 11 перед тем, как применить этот код, но есть ли лучший способ решить эту проблему?

Нет, нет.Как вы правильно заметили, все это работает совершенно по-разному в iOS 10 и iOS 11. Таким образом, вам придется писать условный код в зависимости от версии во время выполнения.

  • Для iOS 10 вы устанавливаетеcontentInset, как вы показали.

  • Для iOS 11 вы установите contentInsetAdjustmentBehavior на .always.

...