Кадр попередження для "Навігаційної панелі" буде різним під час виконання. З'являється в Xcode 8 Swift 3


143

До того, як я перейшов, 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існує для підзаписів. У будь-якому випадку я міг би вирішити це, поставивши галочку та зніміть прапорець Shows navigation barу Attributes inspector. Але, на жаль, кожного разу, коли я знову відкриваю, Main.storyboardце попередження з’являється знову. Також якщо натиснути на жовтий трикутник, а потім на кадри оновлення, нічого не станеться.

введіть тут опис зображення


1
Тут підтверджено те саме питання. Жоден із запропонованих рішень не усуває проблему.
GregP

@GregP, будь ласка, перевір моє рішення та відповідь
KSR

@Ashish Kakkad будь ласка, перевірте моє рішення та відповідь
KSR

Подано rdar: // 28844288. Не соромтеся виходити на openradar.me/radar?id=4985464104681472
Гійом

Це моє останнє попередження, яке неприємно переслідує мене після оновлення проекту.
Сетмр

Відповіді:


154

Попередження зникне, якщо ви зміните властивість "Розмір імітації" на "Безкоштовна форма".


37
Це не вирішує проблему. Закрийте Xcode і відкрийте знову, проблема знову з’явиться.
Ashish Kakkad,

2
Це переймає чорт у мене. Я просто спробував це, і це тимчасово видаляє попередження . Ви завжди можете перемикати імітований розмір вперед і назад, щоб видалити попередження, коли воно повернеться. Супер. Дратівливий.
nekonari

5
Тільки тимчасове виправлення - це не відповідь.
emem

5
Або змініть цей імітований розмір (і поверніть його на «Інферректний» або будь-який інший), або «включення / вимкнення Настроювання вкладишів прокрутки» . І те й інше призведе до того, що «Розгортка» видалить її misplaced="YES". Це помилка Xcode, і це виправлення є вимушеним оновленням. Взяте з @buildsucceeded відповіді.
bauerMusic

1
@MobileBloke Силою-оновленням я мав на увазі, що це призведе до того, що перегляд «Розгортки» перепише (оновить) парами, переоцінить та видалить попередження. Це дійсно оновлення. Сила мала на увазі лише те, що вона не робила це автоматично сама (як слід) і потребувала певної довільної зміни вручну.
bauerMusic

35

Як було зазначено тут, ви можете це виправити, увімкнувши / вимкнути Налаштування вкладок прокрутки.


4
Нічого, і (перевіряючи git) буквально все, що відбувається, коли ти це робиш, - це те, що misplaced="YES"видаляється. : /
buildsucced

7
Це виправляється до наступного разу, коли ви закриєте і знову відкриєте проект. Не повне виправлення.
Кейсі Вагнер

15

Я змінив з View as: iPhone 6S на iPhone 5S, потім повернувся до iPhone 6S, і Xcode здійснив усі зміни, щоб зняти попередження.


2
Це спрацювало короткий час - потім після того, як Xcode переробив його знову - те ж саме сталося і попередження повторилося. Це все ще працює для вас на останньому Xcode?
UKDataGeek

12

Це працювало для мене на Xcode 8.3.1. Після перезавантаження Xcode він все ще працюватиме.

введіть тут опис зображення

  1. Виберіть Навігаційний контролер

введіть тут опис зображення

  1. Перейдіть до Показання інспектора розміру

введіть тут опис зображення

  1. Зміна імітованого розміру на Freeform

введіть тут опис зображення

  1. Змінення імітованого розміру назад на фіксований

введіть тут опис зображення

  1. Тоді попередження зникають.

введіть тут опис зображення


Будь-яка ідея, чому б це працювало, а не кнопка "Оновити кадри"?
Марганець

@guoc, брато, ти можеш мені допомогти, будь ласка, stackoverflow.com/questions/46375778/… ?
травень Фію

7

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

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

Хак, але приємно мати нульові попередження, а не 1 :)


Чи доведеться мені це додати пізніше? Мені все одно, як виглядає мій навігаційний контролер, доки я не маю попереджень. Це щось смішно. Роздільна дошка розпізнає попередження на частку секунди, а потім воно відмирає, коли ви заходите таким чином у табло.
Сетмр

Я зробив те ж саме, а потім більше не торкайтеся до розкладок. Все працює добре.
Чжао

Проблема полягає в тому, що коли ви перезавантажуєтесь, вона повертається назад ... хтось ще помічає, що потрібно тривати тривалий час, щоб завантажувати дошку розгортки спінером, що працює, коли виникає ця помилка?
UKDataGeek

6

Клацніть «Переглянути як» у лівій нижній частині таблиці та виберіть інший розмір пристрою, а потім клацніть його ще раз та перемкніть на потрібний розмір пристрою. Це працювало для мене.


1
це також лише тимчасове виправлення для мене
zero3nna

3

Поки Xcode 8 не буде виправлено, ви можете встановити параметр "Вид як:" на "iPhone SE", щоб усунути попередження. Не ідеально, але працює зараз.


Я ВИКОРИСТОВУЮСЯ СЕ .. але все ж попереджую
Абдул Вахід

1
Так, я знаю. Але вони відходять, коли ви переключите цей вибір на щось інше. Сьогодні я починаю з 7, переходжу на SE, потім повертаюся до 7, щоб очистити ці попередження. Або просто залиште їх і просто не перевіряйте misplacedвластивості, коли вносите зміни.
nekonari

3

Я спробував усі вищенаведені пропозиції, але, схоже, це не вийшло. Я думаю, це може бути більш серйозна помилка.

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


2

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


Потрібно встановити його лише на контролерах перегляду, у яких немає батьків (кореневий контролер перегляду + можливо більше, залежно від того, що у вас є на вашій
дошці

1

У мене була така ж проблема, ось що я зробив, щоб виправити:

Розгорніть інформацію про помилку та натисніть на деталі попередження. Потім Xcode повинен автоматично відкривати параметри розмірності / положення. Замініть поточне значення значенням, запропонованим у деталях попередження.

введіть тут опис зображення

В основному переконайтеся, що розмір вашого часу виконання такий же, як розмір, який ви вказали в інспекторі розмірів.

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

введіть тут опис зображення

Я вибрав параметр обмежень оновлення, після чого відповідно скоригував нові обмеження.


4
Не працює в цій ситуації. Поля X / Y / Ширина / Висота для панелі навігації всі сірі / непридатні.
Сліп Д. Томпсон

@Ian Hmmm ... Я думаю, що я щойно закінчив редагувати xib, щоб цифри збігалися.
Сліп Д. Томпсон,

1

для мене проблема полягала в тому, що я ховав нижню панель під час натискання (використовуючи прапорець IB).

мені довелося вибрати "жодне" у варіанті "нижня панель":

введіть тут опис зображення


0

Гаразд, схоже, я вирішив проблему. Ось що я зробив.

Виберіть кадри оновлення як звичайні. Відкрийте інший файл, а потім натисніть на файл аркуша розкадрівки. Якщо це не працює, перезавантажте Xcode. Схоже, це було оновлення внутрішньо, але інтерфейс інтерфейсу розробника інтерфейсу застряг, як це іноді виходить.


3
Після повторного відкриття XCode це попередження фактично зникає, але якщо я відкрию який-небудь файл у проекті, знову відкриваються main.storyboardці попередження з’являються знову
Danny

0

Будь-ласка, змініть попередній перегляд свого пристрою в xcode для контролера View і компілюйте та перевіряйте на попередження ...

Xcode 8 є бітною помилкою, розробник інтерфейсу скидає його з випадковим відсутністю, що впливає на всі перегляди, що містяться. Спробуйте змінити пристрій попереднього перегляду.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.