Причина поиска "Автоматическая предпочтительная максимальная ширина макета недоступна в версиях iOS до 8,0"
Я знаю причину этого предупреждения и как его решить: дать предпочтительную ширину этикетке.
Проблема в том, что когда я нажимаю это предупреждение, я не вижу, чтобы выбранный ярлык /view/viewcontroller был выбран. Раскадровка открывается и что она. В моей раскадровке есть много контроллеров просмотра со многими видами. Как узнать, какой ярлык вызывает проблему, без повторного запуска через все контроллеры представлений вручную? Когда я нажимаю предупреждение, я ожидаю, что он приведет меня к виду, вызывающему предупреждение, но он просто открывает раскадровку.
Ответы
Ответ 1
Вот один из способов найти конкретную метку, которая вызывает это предупреждение:
- Щелкните правой кнопкой мыши предупреждение и выберите "Показать в журнале"
- Предупреждение в журнале будет выделено. Скопируйте идентификатор объекта компоновщика интерфейса для этой метки (это выглядит как xxx-xx-xxx).
- Вставьте это в Навигатор поиска. Когда вы нажмете на этот результат, он откроет конструктор интерфейса с выбранным ярлыком.
Ответ 2
Запуск XCODE 6.1, я нашел самый простой способ найти ошибку, с помощью Навигатора отчетов.
-
View
→ Navigators
→ Show Report Navigator
или просто нажмите ⌘-8
- Нажмите на сборку в левой панели.
- Нажмите значок сведений рядом с предупреждением.
![enter image description here]()
- Найти идентификатор объекта в описании предупреждения.
![enter image description here]()
- Перейдите в файл и выполните поиск
⌘-f
для идентификатора объекта.
![enter image description here]()
- Исправить проблему. Автоматическая предпочтительная максимальная ширина макета недоступна в версиях iOS до 8.0
Ответ 3
Как сказано в этом сообщении, вы также можете использовать это регулярное выражение
< label (?!. * preferredMaxLayoutWidth) в источнике раскадровки, чтобы найти все метки, которые не имеют предпочтительнойMaxLayoutWidth. Затем исправьте его.
Ответ 4
Ответа на этот вопрос @Don Eichenseer. Но для тех, кто хочет ее решить:
У меня такая же проблема. Проблема заключалась в том, что UILabel
, для которого свойство Lines
(в инспекторе атрибутов) было больше 1
. Когда вы нашли связанный UILabel
, установите для него Lines значение 1
.
Ответ 5
просто удалите количество строк из метки и установите его программно
[label setNumberOfLines:2];
Ответ 6
Это предупреждение из коллекции? Если это так, я бы предположил, что это ячейка и метка с числом строк, установленным в ноль.
Ответ 7
У меня была та же проблема в существующем проекте, разработанном в 7.1 без автозапуска.
Как только я перенес приложение в iOS8 и изменил в файле проекта версию до 8.0, по какой-то причине я получил это предупреждение в Xib, где использовал UILabel с несколькими строками.
чтобы исправить проблему, выберите инспектор файлов для Xib и проверьте версию, для которой он создан, в моем случае он все еще был для iOS7
![введите описание изображения здесь]()
вы должны изменить Build для соответствующей версии
![введите описание изображения здесь]()
и предупреждение исчезнет, как в моем случае: -)
Ответ 8
Я должен переключиться на XCode 6.2 → щелкнуть значок предупреждения в правом верхнем углу основной области XCode → выбрать предупреждение → он показывает точно элемент, вызывающий предупреждение.
![введите описание изображения здесь]()