Поиск причины " автоматическая предпочтительная максимальная ширина макета недоступна в версиях iOS до 8.0"
Я знаю причину этого предупреждения и как ее решить: дать желаемую ширину ярлыку.
Проблема в том, что, когда я нажимаю на это предупреждение, я не вижу никакой метки/view/viewcontroller, выбранной. Раскадровка открывается, и все. В моей раскадровке есть много контроллеров вида со многими видами. Как я могу узнать, какая метка вызывает проблему, не повторяя вручную все контроллеры вида? Когда я нажимаю на предупреждение, я ожидаю, что оно приведет меня к виду вызывая предупреждение,но это просто открывает раскадровку.
8 ответов:
Вот один из способов найти конкретную метку, которая вызывает это предупреждение:
- щелкните правой кнопкой мыши на предупреждении и выберите "Показать в журнале"
- предупреждение в журнале будет выделено. Скопируйте идентификатор объекта interface builder для этой метки (он выглядит как xxx-xx-xxx).
- Вставьте это в навигатор поиска. Когда вы нажмете на этот результат, он откроет конструктор интерфейса с выбранной меткой оскорбления.
Запустив XCODE 6.1, я обнаружил, что проще всего найти ошибку через навигатор отчетов.
View
->Navigators
->Show Report Navigator
или просто нажмите⌘-8
- щелкните на сборке в левой панели.
- щелкните значок сведения рядом с предупреждением.
- Найдите идентификатор объекта в описании предупреждения.
- перейдите в файл и найдите идентификатор объекта
⌘-f
.
Как сказано в , что сообщение, вы также можете использовать это регулярное выражение в источнике раскадровки, чтобы найти все метки, которые не имеют заданной preferredMaxLayoutWidth. Тогда исправьте это.
Ответ @Don Eichenseer велик. Но для тех, кто хочет ее решить: У меня и раньше была такая же проблема. Проблема была из-за
UILabel
, которое егоLines
свойство (в инспекторе атрибутов) было больше, чем1
. Когда вы нашли связанныйUILabel
, установите его строки в1
.
Это предупреждение из представления коллекции? Если это так, я бы предположил, что это ячейка и метка с количеством строк, равным нулю.
У меня была такая же проблема в существующем проекте, разработанном в версии 7.1 без автозапуска. Как только я перенес приложение на iOS8 и изменил в файле проекта версию на 8.0, по какой-то причине я получил это предупреждение в Xib, где я использовал UILabel с несколькими строками.
Чтобы исправить проблему, выберите инспектор файлов для Xib и проверьте версию, для которой он строится, в моем случае это все еще было для iOS7
Вы должны изменить сборку на соответствующая версия
И предупреждение исчезнет, как и в моем случае : -)