Вот до и после одного из моих экранов после того, как я обновился до Xcode 8.
Все, что я сделал, - это открыл свой main.storyboard, и оттуда я создал и запустил свое приложение на своем телефоне.
В моем контроле версий я вижу, что Xcode вносит много изменений в мой main.storyboard только после того, как я его открыл.
Всякий раз, когда я удаляю эти изменения, я вижу, что использую для просмотра в Xcode 7.3.1.
Но как только я снова открываю конструктор интерфейсов со своей раскадровкой, я вижу, что эти изменения возвращаются на свои места.
Я могу что-нибудь здесь сделать?
102
Debug View Hierarchy
. Другие объекты того же класса, которые находятся в UICollectionViews, не затронуты.Ответы:
У меня была аналогичная проблема с изображениями tableview, которые не появлялись после того, как я преобразовал файл раскадровки в Xcode8-совместимый. Это похоже на ошибку с Xcode8, поэтому, пока не будет выпущено исправление ошибки, вот обходной путь:
Если вам нужно внести другие изменения в файл раскадровки, повторите эти шаги еще раз.
источник
XIB или Storyboard по умолчанию устанавливают более старую версию 7.x и сохраняют и закрывают. Временное решение, но работает. Не открывайте снова после того, как вы выполнили «Сохранить и закрыть». В противном случае снова нужно выполнить те же шаги с самого начала.
источник
Эх такая же проблема. Частично мне удалось исправить это следующим образом ( для Xcode Version 8.1 (8B62) )
В схеме документа раскадровки я нажимал на каждую сцену, у которой была желтая стрелка, указывающая на некоторые проблемы с макетом (номер 1 на скриншоте)
После этого для каждой проблемной сцены я должен был щелкнуть маленький значок «Обновить кадры» (номер 2 на скриншоте), который исправил все проблемы с макетом для каждой сцены.
Однако одна сцена в моем случае все еще была в состоянии плача после перехода с Xcode7 на Xcode8. Мне пришлось исправить это вручную, настроив ограничения или добавив недостающие ограничения.
Уф, неприятный сюрприз от XCode8 и раскадровки. Если вы использовали редактор AppCode, у вас не будет такой проблемы, так как он не поддерживает раскадровки; P
Удачи!
источник
Xcode 8.1 Beta 2 решает эту проблему. Пожалуйста, проверьте эту ссылку для скачивания
https://developer.apple.com/download/
источник
Пожалуйста, следите за тем, чтобы найти любое возможное решение: (я считаю, что это случается со многими разработчиками).
Xcode 8 GM seed Проблема раскадровки
Xcode 8 - Предыдущие раскадровки искажаются
(я использовал anyH anyW шириной 600). Когда Xcode обновился до Xcode 8, он изменил размер всех моих ViewControllers. В результате весь макет был искажен.
В настоящее время я вижу только 3 решения проблемы (я бы не стал ждать исправления в ближайшее время).
1. Найдите каждый Viewcontroller и исправьте его
Update Frames
.2. Перейдите к основному ViewController,
Size Inspector -> Freeform -> 600
поскольку предполагается, что большинство контроллеров изменит размер для всех из них (будьте осторожны с влиянием новых функций, которые Apple хочет представить).3. Отмените изменения в git для раскадровки (я бы не предлагал этого, потому что Apple также вставила некоторые обновления, которые могут быть важны для Xcode).
Дополнительная ссылка на новые функции AutoLayout в Xcode 8 (WWDC16): Создание адаптивных приложений, часть 1
источник
В моем случае работают решения, предложенные Ахилом Катеей, и мне также нужно сбросить ширину и высоту основного вида:
1) Установите размер просмотра в произвольную форму
2) Восстановите исходный размер ширины и высоты вида:
Наконец сохраните, и все готово.
источник
Для меня решением было просто щелкнуть UIViewController, у которого есть проблемы, а затем
Editor > Resolve Auto Layout Issues > All Views In ... > Updates Frames
Он переупорядочил представления в соответствии с существующими ограничениями на основе недавно выбранного представления по умолчанию (iPhone 7 в моем случае).
Также обратите внимание: если вы получили предупреждение о неправильном представлении панели навигации, как я, просто выберите UINavigationController / UIViewController, а затем
Attributes Inspector > Bar Visibility > Shows Navigation Bar
- выключите его, а затем снова включите .источник
У меня сработала установка размера представления в произвольную форму из Inferred . Его можно найти под заголовком Simulated Metrics в Attributes Inspector .
источник
У меня была такая же проблема, и я решил ее принудительно обновить ограничения представления контроллера. Поместите следующий код в viewDidLoad () функция
источник
Я выбрал каждый контроллер и щелкнул «Обновить кадры», и макет был исправлен.
источник
Ответ от @ david-truong ( https://stackoverflow.com/a/39589860/1407528 ) не работает в моем случае, поэтому, если вы находитесь в моей ситуации, попробуйте следующее:
Если все ваши устройства обновлены до iOS 10+, эта версия Xcode не распознает эти устройства как совместимые. Итак, попробуйте вот такой трюк:
Примечание. Новые функции, такие как Swift, будут недоступны при использовании этого трюка, но вы сможете загрузить и собрать свой проект.
источник
Надеюсь, это поможет
Когда я обновил Xcode с 7.3 до Xcode 8 и запустил приложение, некоторые из представлений отображаются отлично, но некоторые искажены. Затем я проверил файл пера, и он предложил мне выбрать конкретный размер устройства, а затем показать перо в соответствии с этим размер устройства, который, конечно, нет
Any-Any(Xcode 7.3)
. Таким образом, все файлы перьев отображаются некорректно.Решение работает от меня: - нажмите желтую стрелку, как показано на изображении ниже
появится всплывающее окно с такими параметрами, как
выберите
Update Frames
с помощьюApply to all views in container
checked. он решит около 90% искаженного пользовательского интерфейса, а остальную проблему ограничений автоматического макета можно решить вручную.источник
Я исправил проблему с помощью Xcode версии 7.3.1, вы можете загрузить файл .dmg с портала разработчика Apple. Я использовал автоматическое изменение размера в каждом приложении, и он отлично мне подходит. Я обновлюсь до Xcode 8, только если они смогут исправить эту ошибку.
Загрузите его здесь: https://developer.apple.com/services-account/download?path=/Developer_Tools/Xcode_7.3.1/Xcode_7.3.1.dmg
источник
Чтобы решить аналогичную проблему, я настроил xib как Freeform (not Inferred) И сохранил файл xib как совместимый с Xcode 7.x. В моем случае потребовались оба шага. Надеюсь, это поможет!
источник
Я заметил одну новую кнопку в Xcode 8.2 (проверьте оранжевый кружок на изображении). Это поможет вам.
Шаги: 1. Откройте раскадровку и выберите любое устройство, которое вы хотите 2. Просто выберите контроллер представления 3. Нажмите указанную кнопку (как на изображении) 4. Он обновит фрейм для этого контроллера представления, и вы можете продолжить
Я не нашел лучшего решения, чем это. Пожалуйста, ответьте, если найдете.
источник
Обновить ограничения и подвиды макета в viewdidload решает проблему
источник