2013-10-02 4 views
2

Я нахожусь в процессе перехода приложения на iOS7. Все представления во всем приложении содержат 44px пустое место внизу, которое похоже на нижнюю панель инструментов или что-то в этом роде, но я не пытаюсь отобразить нижнюю панель инструментов. Это пространство также существует для представлений, имеющих нижнюю панель инструментов, и панель инструментов просто отображается непосредственно над ней.Как исправить пустое пространство 44px в представлении iOS7 с помощью ViewDeckController?

Красное пространство, показанное на самом деле, является видом на черный вид. Независимо от того, какой размер я устанавливаю рамкой черного просмотра, всегда отображается красное пространство. Я также скрываю строку состояния в plist, поэтому не знаю, является ли это артефактом или что-то связано с панелью навигации, так как они обычно имеют 44 пикселя в высоту.

Я просмотрел переходник и не нашел ничего, что сработало. Любые идеи о том, что может быть причиной этого и как исправить? не

ОБНОВЛЕНИЕ: Я попытался установить edgesForExtendedLayout = UIRectEdgeAll и extendedLayoutIncludesOpaqueBars = ДА (также пытались NO) при отсутствии эффекта. Когда я смотрю на subviews навигационного контроллера, он показывает UIToolBar как скрытый, но показывает, что он содержит фрейм в точной области, которую представление отказывается изменять размер даже с ограничениями автоопределения.

UPDATE 2: Это на самом деле проблема с ViewDeckController (https://github.com/Inferis/ViewDeck) и способ его устанавливает это центр вид оценки.

enter image description here

ответ

1

Я считаю, что он должен делать с UINavigationBar. Попробуйте переключить следующие параметры в раскадровке и посмотреть, разрешает ли она проблему. А именно, «длинный кант» варианта:

enter image description here

Этих параметры также могут быть установлены в коде с edgesForExtendedLayout и extendedLayoutIncludesOpaqueBars свойствами на UIViewController.

+0

Я пробовал настройку edgeForExtendedLayout = UIRectEdgeAll и extendedLayoutIncludesOpaqueBars = ДА (также пробовал НЕТ) без эффекта. Когда я смотрю на subviews навигационного контроллера, он показывает UIToolBar как скрытый, но показывает, что он содержит фрейм в точной области, в которой вид отказывается изменять размер. – mtg169

1

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

Использование фреймов в iOS 7 сложнее и является способом прошлого.

Автоматический макет трудно понять сначала, но он очень мощный, как только вы почувствуете себя.

+0

Забыл упомянуть, что я тоже пробовал авто-макет, и это не сработало.Это, по-видимому, проблема с панелью навигации контроллера. Панель инструментов скрыта, но вид не изменяется. Похоже, он думает, что это там, когда это не так. – mtg169

1

Это на самом деле проблема с сторонней библиотекой ViewDeckController (https://github.com/Inferis/ViewDeck) и тем, как она устанавливает centerViewBounds для IIViewDeckControllerIntegrated. Я смог понять это после перехода на IIViewDeckControllerContained и правильного просмотра размера.

В IIViewDeckController.m, просто верните self.referenceBounds для iOS7, как и для IIViewDeckControllerContained.

+0

Вы заслуживаете более одного момента для этого ответа, ИМО. У меня была эта проблема со строкой состояния. Я знал, что это имеет какое-то отношение к ViewDeckController, но не может точно определить его. Спасибо за часы, которые вы, вероятно, спасли меня! – dsmDev

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

  • Нет связанных вопросов^_^