2017-01-30 1 views
1

Я работаю над Xamarin Studio с моно, но вы можете ответить в Obj-C или Swift. Я не против. (Пожалуйста, не возражаете иконки, дизайн, переводы и т.д. на скриншотах это WIP)Как удалить белое верхнее пространство, которое появляется на вкладке в других (UITabBarController)

у меня этот странный вопрос, который я не могу решить:

белое пустое пространство появляется под верхней панели мой UIView, который находится в UITabBarController, сначала я подумал, что включен параметр «Настроить прокрутки», но это не так. Я также попытался удалить свой UIWebView и попробовать с помощью Label, той же проблемы.

Пустое пространство отображается только в виде «вкладки» в разделе «Другие» моего UITabBarController (когда экран слишком мал). Вы можете видеть на моих скриншотах на iPad белое пространство здесь, но на всех других устройствах (iPhone, iPhone plus) это появляется!

я могу поставить отрицательное верхнее ограничение, если устройство не является IPad, но это не правильный способ, чтобы удалить его ...

Вы можете найти скриншоты (в порядке убывания):

  • вид раскадровки
  • Топ побуждению WebView
  • пробельных на iPhone (но не на IPad и раскадровки, здесь не должно быть !!)
  • StoryBoard структура
  • Нет пробельные на IPad (это нормальное поведение, я хочу его на небольших устройствах, тоже)
  • ViewController параметры

StoryBoard View

The white space

Top Constraint on my WebView

Storyboard structure

No whitespace on iPad

ViewController parameters

+0

Не у вас есть время, чтобы комментировать ваши 1000 скриншотах, что есть что? И, может быть, нарисуйте линию, какова ваша проблема, чтобы спасти людей, которые помогут вам некоторое время, чтобы перевести свое объяснение на ваши изображения? –

+0

@Sneak Hello, есть описание каждого скриншота над ними, как вы можете видеть, я попытался сделать его более очевидным. Моя проблема заключается в пробеле, который отображается под верхней панелью в каждом представлении, находящемся в разделе «другие» (в TabBar). –

+1

Вы пытались отменить выбор «Extent edge - Under Top Bars»? Также вы можете попробовать проверить, задайте свой navigationController.navigationBar.translucent = YES, если это решает ваш вопрос. Я обновлю ответ, чтобы вы могли отметить ответ, дайте мне знать –

ответ

0

Это с виду белое пространство именно бар нав поддавки, что в настройке для этих баров что-то криво.

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

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

0

Спасибо за ваши ответы, я узнал, что это было за пробел.

Если я хочу удалить его я должен снять флажок «Extent края - под верхней частью Барсе», а затем сделать (или Панель навигации будет серым, см Dark shadow on navigation bar during segue transition after upgrading to Xcode 5.1 and iOS 7.1):

NavigationController.NavigationBar.Translucent = false; 

Но попытка решить вопрос, я попытался следующий код:

ParentViewController.NavigationController.NavigationBar.Translucent = false; 

и белое пространство превратится во второй Панель навигации с инструментами, чтобы реорганизовать вкладки, и нет необходимости снять отметку «Extent края - Под Top Барс» (особенно, если вы не устанавливайте tranlucent в false, потому что вторая панель навигации будет находиться под ним).

Я буду держать эту вторую навигационную панель (https://developer.apple.com/reference/uikit/uitabbarcontroller/1621183-morenavigationcontroller), мне она нравится. Но почему-то это не отображалось до тех пор, пока я не установил надписью NavigationController NavigationCarroller Navigation Transparent ParentViewController значение false ... Я действительно не понимаю, почему это должно было появиться напрямую, но ...

Обратите внимание, что правильный способ отображения это Панель навигации, если он не отображается по умолчанию, чтобы добавить строку в классе UITabBarController, а не в каждом ViewController ...

public partial class TabBarController : UITabBarController 
{ 
    public TabBarController(IntPtr handle) : base(handle) 
    { 
    } 

    public override void ViewDidLoad() 
    { 
     CustomizableViewControllers = null; //if you want to disable the edit button 
     NavigationController.NavigationBar.Translucent = false; 
     base.ViewDidLoad(); 
    } 
} 

(Извините за французский на скриншотах мое устройство на французском языке ..)

enter image description here

enter image description here

enter image description here

Смежные вопросы