Поиск причины " автоматическая предпочтительная максимальная ширина макета недоступна в версиях iOS до 8.0"


Я знаю причину этого предупреждения и как ее решить: дать желаемую ширину ярлыку.

Проблема в том, что, когда я нажимаю на это предупреждение, я не вижу никакой метки/view/viewcontroller, выбранной. Раскадровка открывается, и все. В моей раскадровке есть много контроллеров вида со многими видами. Как я могу узнать, какая метка вызывает проблему, не повторяя вручную все контроллеры вида? Когда я нажимаю на предупреждение, я ожидаю, что оно приведет меня к виду вызывая предупреждение,но это просто открывает раскадровку.

8   14  

8 ответа:

Вот один из способов найти конкретную метку, которая вызывает это предупреждение:

  1. щелкните правой кнопкой мыши на предупреждении и выберите "Показать в журнале"
  2. предупреждение в журнале будет выделено. Скопируйте идентификатор объекта interface builder для этой метки (он выглядит как xxx-xx-xxx).
  3. Вставьте это в навигатор поиска. Когда вы нажмете на этот результат, он откроет конструктор интерфейса с выбранной меткой оскорбления.

Запустив XCODE 6.1, я обнаружил, что проще всего найти ошибку через навигатор отчетов.

  1. View -> Navigators -> Show Report Navigator или просто нажмите ⌘-8
  2. щелкните на сборке в левой панели.
  3. щелкните значок сведения рядом с предупреждением.

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

  1. Найдите идентификатор объекта в описании предупреждения.

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

  1. перейдите в файл и найдите идентификатор объекта ⌘-f.

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

  1. исправить вопрос. автоматическая предпочтительная максимальная ширина макета недоступна в версиях iOS до 8.0

Как сказано в , что сообщение, вы также можете использовать это регулярное выражение в источнике раскадровки, чтобы найти все метки, которые не имеют заданной preferredMaxLayoutWidth. Тогда исправьте это.

Ответ @Don Eichenseer велик. Но для тех, кто хочет ее решить: У меня и раньше была такая же проблема. Проблема была из-за UILabel, которое его Lines свойство (в инспекторе атрибутов) было больше, чем 1. Когда вы нашли связанный UILabel, установите его строки в 1.

Просто удалите номер строки из метки и установите его программно

[label setNumberOfLines:2];

Это предупреждение из представления коллекции? Если это так, я бы предположил, что это ячейка и метка с количеством строк, равным нулю.

У меня была такая же проблема в существующем проекте, разработанном в версии 7.1 без автозапуска. Как только я перенес приложение на iOS8 и изменил в файле проекта версию на 8.0, по какой-то причине я получил это предупреждение в Xib, где я использовал UILabel с несколькими строками.

Чтобы исправить проблему, выберите инспектор файлов для Xib и проверьте версию, для которой он строится, в моем случае это все еще было для iOS7

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

Вы должны изменить сборку на соответствующая версия

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

И предупреждение исчезнет, как и в моем случае : -)

Я должен переключиться на XCode 6.2 - > нажмите на значок предупреждения в правом верхнем углу основной области XCode -> выберите предупреждение -> он показывает именно тот элемент, который вызывает предупреждение. Введите описание изображения здесь