Ответ 1
Я подклассифицировал UISplitViewController и добавил строку ниже для просмотраDidLoad и установил серой строку.
self.extendedLayoutIncludesOpaqueBars = YES;
У меня странный, который я не могу исправить. В настоящее время я работаю над обновлением своего приложения до iOS7. Все это работало в iOS6. Это универсальное приложение и, таким образом, использует те же файлы xib. Однако iPad использует UISplitViews для некоторых. Как я уже сказал, все это работало в iOS6, и все это тоже работает на iPhone.
Проблема заключается в серой полосе внизу. Я изменил панель вкладок, чтобы быть непрозрачным, чтобы правильно перемещать просмотры, поскольку у меня был некоторый пользовательский интерфейс, обрезанный снизу просмотров, и который попал под панель вкладок, отвлекшись от него. Но если я верну его обратно к полупрозрачному бару, он поднимется ниже, но растянется правильно. если я не буду, он добавит бар. Другие вкладки отлично работают, когда НЕ используют splitview.
Программа UISplitviewController добавлена программно.
См. прикрепленное изображение для лучшего описания.
Это я пробовал:
Любые идеи будут приветствоваться.
Спасибо всем.
UPDATE:
установка цвета фона в uisplitview, он окрашивает черную полоску. Таким образом, uisplitview определенно растягивается.
Я подклассифицировал UISplitViewController и добавил строку ниже для просмотраDidLoad и установил серой строку.
self.extendedLayoutIncludesOpaqueBars = YES;
Я считаю, что нашел альтернативное решение для вас. У меня была такая же проблема, главным образом потому, что мы делаем что-то против Apple Guidelines, у которой есть SplitViewController, вложенный в контроллер Tabbar (SplitView должен быть корневым представлением). Это было хорошо в iOS 5/6, но теперь в iOS 7 слишком много побочных эффектов для этого.
Причина, по которой вы видите, что ваш взгляд растягивается полностью, когда вы устанавливаете штрих, чтобы быть полупрозрачным, состоит в том, что панель не принимается во внимание при рисовании вида. Когда вы устанавливаете полупрозрачность на false, тогда учитывается представление, и вы увидите, что серая полоса там, потому что ваше представление притворяется там табуляцией внизу экрана.
И как всегда, высота SplitViewcontroller не может быть изменена, так как она определяется высотой видимого окна.
Я пробовал все, что вы делали, а затем некоторые. Реальное решение исходило от использования стороннего контроллера Split View.
Я рекомендую переключиться на https://github.com/mattgemmell/MGSplitViewController. Этот контроллер с разделенным изображением на самом деле представляет собой один большой вид с живыми внутри него видами контейнера. Из-за этого вы избегаете всех побочных эффектов, связанных с размещением реального контроллера разделенного вида в панели вкладок.
Если это не плавает на вашей лодке, вы можете создать свое собственное решение, которое следует той же идее, что один UIViewController с двумя контейнерами, содержащимися в нем, хотя люди, стоящие за MGSplitViewController, уже хорошо справились с этим.
Это был единственный способ решить эту проблему, сообщите мне, если вы найдете альтернативу.
Вместо создания подкласса для UISplitViewController
, я просто добавил этот код в мой мастер viewDidLoad
:
self.splitViewController?.extendedLayoutIncludesOpaqueBars = true
Для контроллера, который является подробным представлением UISplitViewController, вы просто это делаете:
-(UITabBarController*)tabBarController{
return nil;
}