Ответ 1
Предупреждение исчезнет, если вы измените свойство "Имитированный размер" на "Свободная форма".
До того, как я обновился до Xcode 8
я не видел этой ошибки в таком случае. У меня разные навигационные контроллеры. Для всех них я вижу ошибку Frame for "Navigation bar" will be different at the run time. Navigation bar "Expected: width=384, Actual: width=375
Frame for "Navigation bar" will be different at the run time. Navigation bar "Expected: width=384, Actual: width=375
На самом деле эти навигационные контроллеры не имеют Navigation bar
Navigation bar
существует для подпредставлений. В любом случае, я могу решить ее, установив галочку и сняв флажок" Shows navigation bar
в Attributes inspector
Но, к сожалению, каждый раз, когда я снова Main.storyboard
это предупреждение появляется снова. Также, если я нажимаю на желтый треугольник, а затем на фреймах обновления, ничего не происходит.
Предупреждение исчезнет, если вы измените свойство "Имитированный размер" на "Свободная форма".
Как уже упоминалось здесь, вы можете исправить это, включив/выключив настройку вложений ScrollView.
Я изменил с View как: iPhone 6S на iPhone 5S, а затем вернулся на iPhone 6S, и Xcode сделал все изменения, чтобы удалить предупреждение.
Это работало для меня в Xcode 8.3.1 После перезапуска Xcode он все равно будет работать.
В качестве обходного пути, чтобы избавиться от раздражающего предупреждения, я редактировал Main.storyboard вручную, удалив "неуместно" в:
<navigationBar key="navigationBar" opaque="NO" contentMode="scaleToFill" misplaced="YES" translucent="NO" id="Os1-Xh-7XN">
Взломать, но хорошо иметь нулевые предупреждения, а не 1:)
Нажмите "Посмотреть как" в левом нижнем углу раскадровки и выберите другой размер устройства, затем нажмите его еще раз и верните размер устройства, с которого вы начали. Это сработало для меня.
Пока Xcode 8 не будет исправлен, вы можете установить опцию "Просмотр как:" на "iPhone SE", чтобы устранить предупреждение. Не идеально, но работает пока.
Я пробовал все вышеперечисленные предложения, но он, похоже, не работал. Я думаю, что это может быть более серьезная ошибка.
Я зарегистрировал ошибку с Apple Bug Reporter (ссылка: https://bugreport.apple.com/logon) - если вы хотите сделать то же самое, тогда пожалуйста контрольная ошибка: 31355220
, чтобы Apple могла связать ее вместе. Чем больше людей сообщают об этом, тем больше информации им придется исправить эту досаду.
Мне удалось полностью избавиться от этой проблемы, установив имитированный размер контроллера вида в свободную форму и затем установив ширину от 375 до 320.
Имел ту же проблему, вот что я сделал, чтобы исправить:
Разверните информацию об ошибке и нажмите на подробную информацию о предупреждении. Затем Xcode автоматически откроет параметры измерения/положения. Замените текущее значение значением, указанным в деталях предупреждений.
В принципе, убедитесь, что размер в вашей среде выполнения совпадает с размером, указанным в инспекторе размеров.
Вы также можете щелкнуть значок рядом с изображением, которое вы разместили (желтый треугольник с белым кружком. Иногда его значок красного круга), тогда будут варианты автоматического исправления/корректировки проблем.
Я выбрал опцию ограничения обновлений, а затем скорректировал новые ограничения.
для меня проблема заключалась в том, что я прятал нижнюю панель при нажатии (используя IB-флажок).
Мне пришлось выбрать "none" в опции "bottom bar":
Хорошо, похоже, я исправил проблему. Вот что я сделал.
Выберите фреймы обновления, как обычно. Откройте другой файл, а затем щелкните обратно в файле раскадровки. Если это не сработает, перезапустите Xcode. Похоже, что он обновлялся внутренне, но интерфейс-интерфейс для интерфейса был застрял, как это иногда бывает.
Пожалуйста, измените свое устройство. Предварительный просмотр в xcode для просмотра контроллера и компиляции и проверки на наличие предупреждений...
Xcode 8 является бит-ошибкой, Interface builder reset со случайным значением, которое влияет на все содержащиеся представления. Попробуйте изменить устройство предварительного просмотра.