Подтвердить что ты не робот

Проблема с ios 7 UiView

Я запускаю одно и то же приложение в iOS6 и iOS7, у которого есть NavigationBar.It хорошо работает на iOS6, но в iOS7 все представление немного немного похоже на то, что он вообще не рассматривает панель навигации.

Я попытался изменить свойство topbar в параметре моделируемых показателей, но он не работает. Он рассматривает положение кнопки из NavigationBar в iOS6, но в iOS7 он считает это сверху.

В чем причина этого?

Спасибо заранее.

iOS 6 Screenshot

iOS 7 Screenshot

4b9b3361

Ответ 1

Вы должны использовать строку ниже, чтобы исправить ее в своем представлении.

 self.edgesForExtendedLayout = UIRectEdgeNone;

Ответ 2

В "Руководстве по переходу на iOS 7 UI" для Layout and Appearance, о котором также упоминалось - в iOS7 in, контроллеры представлений используют полноэкранный макет.

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

edgeForExtendedLayout - это атрибут типа UIExtendedEdge, который указывает направление расширяемого края.

Поскольку iOS7 поддерживает полноэкранный макет, его значением по умолчанию является, естественно, UIRectEdgeAll, оба распространяются по краю, то есть, если есть даже view navigationBar, в tabBar, тогда представление увеличит охват в окрестностях.

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

self . edgesForExtendedLayout = UIRectEdgeNone ;

Ответ 3

В iOS 7 контроллеры просмотра используют полноэкранную компоновку. это упоминается в Руководстве по переходу на iOS 7 UI

если вы хотите изменить макет, используйте edgeForExtendedLayout свойство

Пример:

   if([UIViewController instancesRespondToSelector:@selector(edgesForExtendedLayout)])

        self.edgesForExtendedLayout=UIRectEdgeNone;

Ответ 4

Во время этого ответа iOS 7 все еще находился под NDA, поэтому было невозможно написать фактическое решение. В любом случае, я добавил ссылку помощи, доступную только зарегистрированным разработчикам.

==== Оригинальное сообщение: ====

Прочтите iOS 7 Transition Guide. В разделе "Обновление пользовательского интерфейса" объясняется, как исправить вашу проблему.

Ответ 5

У меня была аналогичная проблема и я обнаружил, что если вы отключите прозрачность навигационной панели, то виды будут падать так же, как в iOS6.

self.navigationController.navigationBar.translucent = NO;

Ответ 6

if([self respondsToSelector:@selector(edgesForExtendedLayout)])
    [self setEdgesForExtendedLayout:UIRectEdgeBottom];