14

У меня странный, что я не могу исправить. В настоящее время я работаю над обновлением своего приложения до iOS7. Все это работало в iOS6. Это универсальное приложение и, таким образом, использует те же файлы xib. Однако iPad использует UISplitViews для некоторых. Как я уже сказал, все это работало в iOS6, и все это тоже работает на iPhone.UISplitView с UITabbar

Проблема заключается в сером полоске внизу. Я изменил панель вкладок, чтобы быть непрозрачным, чтобы правильно перемещать просмотры, поскольку у меня был некоторый пользовательский интерфейс, обрезанный снизу просмотров, и который попал под панель вкладок, отвлекшись от него. Но если я верну его обратно к полупрозрачному бару, он поднимется ниже, но растянется правильно. если я не буду, он добавит бар. Другие вкладки работают нормально, когда НЕ используют splitview.

UISplitviewController добавлен программно.

См. Прикрепленное изображение для лучшего описания.

The grey bar is between my splitview and tabbar

Это я пробовал:

  • Добавлено AUTORESIZE на SPLITVIEW
  • Проверено XIB для подвидов в splitviews, чтобы иметь автоматическое изменение размера
  • Пытались заставить SplitView быть экран оценки
  • Удалённые клипы до границ на всех экранах
  • Удалить d autoresize subviews

Любые идеи приветствуются.

Спасибо всем.

UPDATE:

установки цвета фона uisplitview, он делает цвет штрих-черным. Таким образом, uisplitview определенно тянется к нему.

+0

Здравствуйте, MashDup, я пытаюсь реализовать контроллеры Splitview с вкладками. Можете ли вы посоветовать мне, как это можно сделать. –

ответ

30

Я подклассифицировал UISplitViewController и добавил строку ниже для просмотраDidLoad и установил серой линии.

self.extendedLayoutIncludesOpaqueBars = YES; 
+1

удивительный, спасибо. Я прочитал это и наткнулся на эту страницу, которая помогла больше. хорошая ссылка для тех, у кого есть проблемы с взглядами. http://www.brianjcoleman.com/ios7-weve-got-a-problem/ – mashdup

+3

Вы можете установить это свойство также непосредственно в вашем .xib-файле без подкласса ... есть 3 расширения свойств, которые вы можете настроить. – konran

+1

+1 для того, чтобы поставить меня на правильный след; по причинам, неизвестным в моем случае, мне нужно было проверить одно из других свойств продолжения, чтобы избавиться от серой полосы. – mvds

5

Я считаю, что я нашел альтернативное решение для вас. У меня была одна и та же проблема, главным образом потому, что мы делаем что-то против Руководства Apple, которое имеет SplitViewController, вложенный в контроллер Tabbar (SplitView должен быть корневым представлением). Это было нормально в iOS 5/6, но теперь в iOS 7 слишком много побочных эффектов для этого.

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

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

Я пробовал все, что вы сделали, а затем некоторые. Реальное решение исходило от использования стороннего контроллера Split View.

Я рекомендую переключиться на https://github.com/mattgemmell/MGSplitViewController. Этот контроллер с разделенным изображением на самом деле представляет собой один большой вид с живыми внутри него видами контейнера. Из-за этого вы избегаете всех побочных эффектов, связанных с размещением реального контроллера разделенного вида в панели вкладок.

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

Это был единственный способ решить эту проблему, сообщите мне, если вы найдете альтернативу.

+0

Принимая ваш ответ и да, я попробовал MGSplitViewController. Я не пошел с этим в конце. Решение для меня, чтобы позволить полупрозрачную панель вкладок и отрегулировать части представления, которые в ней нуждались. Как ни странно, таблицы корректируются соответственно. Спасибо за ваш ответ: D – mashdup

+0

Мое решение состояло в том, чтобы удалить строку, в которой я устанавливал «полупрозрачный», к НЕТ, теперь мой пользовательский splitViewController внутри tabBarController просто работает. Благодаря! – quarac

0

Для контроллера, который является деталировка UISplitViewController вы просто сделать это:

-(UITabBarController*)tabBarController{ 
    return nil; 
} 
2

Вместо того чтобы создавать подкласс для UISplitViewController, я просто добавил этот код на моего хозяина viewDidLoad:

self.splitViewController?.extendedLayoutIncludesOpaqueBars = true 
Смежные вопросы