Как создать пользовательскую панель навигации для поддержки safeareaview в target- c? - PullRequest
0 голосов
/ 26 февраля 2020

Я использую это для создания навигационной панели, но в iPhoneX происходит перерыв из-за безопасного отображения области

 navbar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0, 0, [UIApplication sharedApplication].keyWindow.rootViewController.view.frame.size.width, 50)];
    navItem = [[UINavigationItem alloc] initWithTitle:@"Title"];
    cancelBtn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(onTapCancel:)];
    navItem.leftBarButtonItem = cancelBtn;
    [navbar setItems:@[navItem]];

enter image description here

Как мы можем сделать это в Objective- C для поддержки iPhoneX?

1 Ответ

0 голосов
/ 26 февраля 2020

вот обходной путь для исправления панели навигации

- (void)viewDidLayoutSubviews{
    int start = self.view.safeAreaInsets.top;
       UINavigationBar * navbar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0, start, [UIScreen mainScreen].bounds.size.width, 50)];
         navbar.prefersLargeTitles = YES;

       UINavigationItem*  navItem = [[UINavigationItem alloc] initWithTitle:@"Title"];

         [navbar setItems:@[navItem]];

         [self.view addSubview:navbar];

}
...