Как добавить UINavigationBar в UIWebView так, чтобы область рисования веб-контента масштабировалась до области под панелью навигации? - PullRequest
1 голос
/ 22 июля 2011

Вот ситуация:

В myViewController есть кнопка «Справка».Нажатие «Справка» активирует следующий метод IBAction, который загружает UIWebView, отображающий PDF.Он также загружает подвид в этот UIWebView, который является UINavigationBar и называется «helpNavBar» с кнопкой «Готово».Причина, по которой я загружаю helpNavBar программным способом, заключается в том, что если я этого не сделаю, то helpNavBar прикрывается отображением PDF (хотя вы все равно можете увидеть его, если прокрутите PDF-файл достаточно далеко, чтобы раскрыть его ...!),Однако проблема заключается в следующем: даже после программной загрузки helpNavBar PDF по-прежнему масштабируется до полной области экрана (за исключением того, что теперь он делает под helpNavBar вместо верхнейоб этом).

Вот мой код для метода IBAction:

 (IBAction)helpButtonPress:(id)sender {
    UIView *current_view;
    current_view = self.view;
    [UIView beginAnimations:@"switch" context:nil];
    [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:self.view cache:YES];
    //[current_view removeFromSuperview];

    //STILL CAN'T GET THE HELP PDF TO SHOW PROPERLY (IT IS PARTIALLY UNDER THE BUTTON)
    self.helpView.autoresizingMask = UIViewAutoresizingFlexibleHeight;
    self.helpView.autoresizesSubviews = TRUE;
    [self.helpView addSubview:helpNavBar];
    [helpNavBar setAutoresizingMask:UIViewAutoresizingFlexibleWidth];

    [self.view addSubview:helpView];
    [UIView commitAnimations];
    NSString *thePath = [[NSBundle mainBundle] pathForResource:@"Angle of View Manual" ofType:@"pdf"];
    if (thePath) {
        NSData *pdfData = [NSData dataWithContentsOfFile:thePath];
        [self.helpView loadData:pdfData MIMEType:@"application/pdf"
                        textEncodingName:@"utf-8" baseURL:nil];
    }
}

Я должен заметить: у меня также была такая же проблема, когда мой UITableViewController загружался.Однако в этом случае я создал UIView с двумя вложенными представлениями: один для tableView и один для navBar.Таким образом, tableView не покрывал navBar. Я знаю, что я мог бы сделать это и в этом случае, но я чувствую, что это хитрый способ сделать это, и должен быть более простой / лучший способ сделать что-то столь же простое, как если бы интерфейс и области просмотра PDF не рисовали вседруг над другом, как двухлетние дети на войлочной маркерной конвенции. Но если единственный способ сделать это - «держать их разделенными» в отдельных подпредставлениях основного UIView, то просто скажите мне «не платите»ум "... Я не приму никакого" неуважения ".

PS - Я избегал использования отдельного UIViewController для этого базового.Представление просто должно появиться и показать краткий PDF-файл и кнопку «Готово», вот и все.Если есть еще более простой способ сделать это, пожалуйста, напишите: D

...