Я знаю, что наличие большего контроллера просмотра (панель навигации) толкает UIView на его высоту. Я также знаю, что эта высота = 44px. Я также обнаружил, что это нажатие поддерживает [self.view].frame.origin.y = 0
.
Итак, как определить высоту этой панели навигации, кроме как просто установить ее на константу?
Или, более короткая версия, как определить, что мой UIView отображается с помощью панели навигации сверху?
Зажгла лампочка. К сожалению, я не нашел единого способа исправить проблему, как описано ниже.
Я считаю, что вся моя проблема связана с моими авторезистентными масками. И причина, по которой я пришел к выводу, что существуют те же симптомы, с UIWebView или без него. И этот симптом заключается в том, что для Портрет характерен все персиковый характер. Для Пейзажа самая нижняя UIButton появляется за TabBar.
Например, на одном UIView у меня сверху вниз:
UIView - оба набора пружин (случай по умолчанию) и отсутствие распорок
UIScrollView. Если я установил две пружины и очистил все остальное (например, UIView), тогда UIButton вторгнется на объект сразу над ним. Если я очистил все, тогда UIButton в порядке, но материал на самом верху скрывается за StatusBar. Установка только верхней стойки, UIButton выскочит за панель вкладок.
UILabel и UIImage, следующий по вертикали - верхняя распорка, гибкая везде
Просто для завершения изображения для тех, у кого есть UIWebView:
UIWebView - Struts: верхняя, левая и правая пружины: обе
UIButton - ничего не задано, т.е. гибко всюду
Хотя моя лампочка тускловата, кажется, есть надежда.
Пожалуйста, несите меня, потому что мне нужно больше места, чем для короткого ответа.
Спасибо, что пытались понять, что я на самом деле ловит рыбу... так вот.
1) Каждый UIViewController (приложение TabBar) имеет UIImage, некоторый текст и все, что сверху. Другим общим знаменателем является UIButton внизу. На некоторых UIViewControllers у меня есть UIWebView над UIButton.
Итак, UIImage, текст и т.д. UIWebView (на некотором) UIButton
В окружении всего перечисленного находится UIScrollView.
2) Для тех, у кого есть UIWebView, его autoresizingMask выглядит так:
—
|
—
^
|
|
| - | ← ---- → | - | | | В Маска UIButton не имеет ничего заданного, т.е. Гибкого везде
В моем -viewDidLoad я вызываю свой -repositionSubViews, в котором я делаю следующее:
Если нет UIWebView, я ничего не делаю, кроме центра UIButton, который я разместил с IB.
Если у меня есть UIWebView, я определяю его * content * Height и устанавливаю его фрейм, чтобы заключить в него весь контент.
UIScrollView *scrollViewInsideWebView = [[webView_ subviews] lastObject];
webViewContentHeight = scrollViewInsideWebView.contentSize.height;
[webView_ setFrame:CGRectMake(webViewOriginX, webViewOriginY,
sameWholeViewScrollerWidth, webViewContentHeight)]
Как только я это сделаю, я программным образом выталкиваю UIButton так, чтобы он оказался ниже UIWebView.
Все работает, пока я не поверну его из "Портрет" в "Пейзаж".
Я вызываю my -repositionSubViews в моей -didRotateFromInterfaceOrientation.
Почему высота содержимого моего UIWebView не изменяется с вращением?.
От "Портрет" до "Пейзаж" ширина содержимого должна расширяться, а высота содержимого должна уменьшаться. Это визуально, как должно, но не согласно моему NSLog.
Во всяком случае, с или без UIWebView, кнопка, о которой я говорил о шагах ниже TabBar, когда она находится в режиме Landscape, но она не будет прокручиваться, чтобы ее можно было увидеть. Я вижу это за TabBar, когда я прокручиваю "энергично", но затем он "отступает" за TabBar.
В итоге, это последняя причина, по которой я спросил о высоте TabBar и NavigationBar, потому что TabBar сажает себя в нижней части UIView, а NavigationBar толкает UIView вниз.
Теперь я собираюсь добавить комментарий или два здесь, потому что раньше они не имели смысла.
Без UIWebView я оставляю все так, как это видно IB.
С помощью UIWebView я увеличиваю кадр UIWebView.Hight до его contentHeight, а также настраиваю высоту окружающего UIScrollView, который окружает все под-представления.
Хорошо, что у вас есть.