Как получить высоту UIView без панели навигации? - PullRequest
3 голосов
/ 17 февраля 2012

Я пытаюсь добавить UIWebView внутри чистого UIViewController, который в моем раскадровке встроен в контроллер навигации:

UIWebView *webView =[[UIWebView alloc] initWithFrame:self.view.bounds)];
webView.delegate = self;
[self.view addSubview:webView];

Проблема в том, что self.view.bounds.size.height равен 460, что, по-видимому, является высотой всего представления, включая панель навигации. Я мог бы вычесть значение self.view.frame.origin.y, равное 20, и получить желаемое значение высоты 440, но есть ли более распространенный способ сделать это?

EDIT

Пожалуйста, посмотрите на мой маленький пример кода здесь: http://uploads.demaweb.dk/WebViewTest.zip

Когда вы прокручиваете вниз до нижней части UIWebView, последняя часть веб-сайта не отображается, так как веб-просмотр слишком высокий.

! [Введите описание изображения здесь] [1]

Ответы [ 5 ]

2 голосов
/ 26 февраля 2012

Решение

Установка autoresizingMask в UIWebView решила мою проблему:

self.autoresizingMask = UIViewAutoresizingF flexWidth | UIViewAutoresizingFlexibleHeight;

0 голосов
/ 23 июня 2015

Я не нашел лучшего решения, кроме использования topLayoutGuide (и, возможно, bottomLayoutGuide).

То есть добавление вашего вида к контроллеру self.view и установка этих ограничений:

"H:|[view]|"
"V:[top][view][bottom]"

Где top равно self.topLayoutGuide, а bottom равно self.bottomLayoutGuide.

В качестве примера см. Метод configureViewController:fillWithSubView: в AutolayoutHelper .

0 голосов
/ 27 апреля 2014
0 голосов
/ 17 февраля 2012

Не беспокойся об этом. Контроллер навигации позаботится об изменении размера view контроллера вида под его юрисдикцией. Вы только переопределите кадр этого представления, если хотите, чтобы он был, например, меньше для размещения других подпредставлений в его суперпредставлении.

0 голосов
/ 17 февраля 2012

Высота по умолчанию 480, 460 - высота без строки состояния. 44px - высота панели навигации (вы можете получить доступ к высоте, так как это UIView - navBar.frame.size.height). Итак, ваш рост зрения составляет 480-20-44 = 416. И вам нужно вычесть из self.view.frame.size.height, а не origin.y

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...