Предупреждающая рамка для «навигационной панели» будет отличаться во время выполнения, появляется в XCode 8 Swift 3

128

До того, как я обновился до XCode 8, я не видел эту ошибку в таком случае. У меня разные навигационные контроллеры. Для всех из них я вижу ошибку Frame for "Navigation bar" will be different at the run time. Navigation bar "Expected: width=384, Actual: width=375. На самом деле эти навигационные контроллеры не имеют Navigation bar. Navigation bar существует для subviews. В любом случае я мог бы решить эту проблему, установив галочку и сняв флажок Shows navigation bar в Attributes inspector. Но, к сожалению, каждый раз, когда я снова открываю Main.storyboard, это предупреждение появляется снова. Также, если я нажму на желтый треугольник, а затем на кадре обновления ничего не произойдет. Любые идеи?

Изображение 71

  • 1
    Та же проблема здесь подтверждена. Ни одно из предложенных решений не решает проблему.
  • 0
    @GregP, пожалуйста, проверьте мое решение и ответьте
Показать ещё 4 комментария
Теги:
xcode
uinavigationbar
xcode8

13 ответов

146
Лучший ответ

Предупреждение исчезнет, ​​если вы измените свойство "Имитированный размер" на "Свободная форма".

Изображение 1865

  • 37
    Это не решает проблему. Закройте Xcode и снова откройте, проблема снова придет.
  • 0
    @AshishKakkad И есть! Раньше делал то же самое и становился нормальным, но опять же это предупреждение ...
Показать ещё 11 комментариев
34

Как уже упоминалось здесь, вы можете исправить это, включив/выключив настройку вложений ScrollView.

  • 4
    Ничего себе, и (проверяя git) буквально все, что происходит, когда вы это делаете, это то, что misplaced="YES" удаляется. : /
  • 7
    Это исправит это до следующего вашего закрытия и повторного открытия проекта. Не полное исправление.
14

Я изменил с View как: iPhone 6S на iPhone 5S, а затем вернулся на iPhone 6S, и Xcode сделал все изменения, чтобы удалить предупреждение.

  • 2
    Это работало в течение короткого времени - затем после того, как Xcode повторил это снова - произошло то же самое, и предупреждение появилось снова. Это все еще работает для вас на последнем Xcode?
11

Это работало для меня в Xcode 8.3.1 После перезапуска Xcode он все равно будет работать.

Изображение 1866

  • Выберите "Контроллер навигации"

Изображение 1867

  1. Перейти к Показать инспектора размеров

Изображение 1868

  1. Изменение имитированного размера в Freeform

Изображение 1869

  1. Изменить размерный размер обратно на Fixed

Изображение 1870

  1. Затем предупреждения исчезают.

Изображение 1871

  • 0
    Любая идея, почему это сработало бы, а не кнопка «Обновить кадры»?
  • 0
    @guoc, брат, не могли бы вы мне помочь, пожалуйста stackoverflow.com/questions/46375778/… ?
7

В качестве обходного пути, чтобы избавиться от раздражающего предупреждения, я редактировал Main.storyboard вручную, удалив "неуместно" в:

<navigationBar key="navigationBar" opaque="NO" contentMode="scaleToFill" misplaced="YES" translucent="NO" id="Os1-Xh-7XN">

Взломать, но хорошо иметь нулевые предупреждения, а не 1:)

  • 0
    Я должен буду добавить это позже? Мне все равно, как выглядит мой навигационный контроллер, если у меня нет предупреждений. Это довольно забавно. Раскадровка распознает предупреждение на долю секунды, а затем исчезает, когда вы входите в раскадровку таким образом.
  • 0
    Я сделал то же самое, а потом больше не трогал раскадровку. Все работает хорошо
Показать ещё 1 комментарий
6

Нажмите "Посмотреть как" в левом нижнем углу раскадровки и выберите другой размер устройства, затем нажмите его еще раз и верните размер устройства, с которого вы начали. Это сработало для меня.

  • 1
    это также просто временное исправление для меня
3

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

Я зарегистрировал ошибку с Apple Bug Reporter (ссылка: https://bugreport.apple.com/logon) - если вы хотите сделать то же самое, тогда пожалуйста контрольная ошибка: 31355220, чтобы Apple могла связать ее вместе. Чем больше людей сообщают об этом, тем больше информации им придется исправить эту досаду.

3

Пока Xcode 8 не будет исправлен, вы можете установить опцию "Просмотр как:" на "iPhone SE", чтобы устранить предупреждение. Не идеально, но работает пока.

  • 0
    Я использую SE .. но все еще предупреждение
  • 1
    Да, знаю. Но они исчезают всякий раз, когда вы переключаете этот выбор на что-то другое. В настоящее время я начинаю с 7, переключаюсь на SE, затем возвращаюсь к 7, чтобы убрать эти предупреждения. Или просто оставьте их, и просто не проверяйте misplaced свойства при совершении изменений.
2

Мне удалось полностью избавиться от этой проблемы, установив имитированный размер контроллера вида в свободную форму и затем установив ширину от 375 до 320.

  • 0
    Вам нужно установить его только на контроллерах представления, у которых нет родителей (контроллер корневого представления + может быть больше, в зависимости от того, что у вас есть в раскадровке)
1

для меня проблема заключалась в том, что я прятал нижнюю панель при нажатии (используя IB-флажок).

Мне пришлось выбрать "none" в опции "bottom bar":

Изображение 1874

1

Имел ту же проблему, вот что я сделал, чтобы исправить:

Разверните информацию об ошибке и нажмите на подробную информацию о предупреждении. Затем Xcode автоматически откроет параметры измерения/положения. Замените текущее значение значением, указанным в деталях предупреждений.

Изображение 1872

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

Вы также можете щелкнуть значок рядом с изображением, которое вы разместили (желтый треугольник с белым кружком. Иногда его значок красного круга), тогда будут варианты автоматического исправления/корректировки проблем.

Изображение 1873

Я выбрал опцию ограничения обновлений, а затем скорректировал новые ограничения.

  • 4
    Не работает в этой ситуации. Поля X / Y / Ширина / Высота для панели навигации отображаются серым цветом / недоступны для редактирования.
  • 0
    @ SlippD. Томпсон тоже здесь, ты уже решил это?
Показать ещё 1 комментарий
0

Пожалуйста, измените свое устройство. Предварительный просмотр в xcode для просмотра контроллера и компиляции и проверки на наличие предупреждений...

Xcode 8 является бит-ошибкой, Interface builder reset со случайным значением, которое влияет на все содержащиеся представления. Попробуйте изменить устройство предварительного просмотра.

0

Хорошо, похоже, я исправил проблему. Вот что я сделал.

Выберите фреймы обновления, как обычно. Откройте другой файл, а затем щелкните обратно в файле раскадровки. Если это не сработает, перезапустите Xcode. Похоже, что он обновлялся внутренне, но интерфейс-интерфейс для интерфейса был застрял, как это иногда бывает.

  • 3
    После повторного открытия XCode это предупреждение фактически исчезает, но если я открою какой-либо файл в проекте и снова откройте main.storyboard эти предупреждения снова появятся

Ещё вопросы

Сообщество Overcoder
Наверх
Меню