Оновлення 3:
Це попередження також може бути ініційовано мітками, на яких numberOfLines
встановлено нічого, крім 1, якщо для вашої цілі розгортання встановлено значення 7.1. Це можна повністю відтворити з новим проектом для перегляду однієї програми.
Кроки до відтворення:
- Створіть новий єдиний проект, об'єктивний-c проект
- Встановіть ціль розгортання на 7.1
- Відкрийте рекламну дошку проекту
- Перекиньте мітку на наданий контролер перегляду
- Встановіть числоOfLines для цієї мітки на 2.
- Складіть
Я подав такий радар:
rdar: // проблема / 18700567
Оновлення 2:
На жаль, це знову ж таки справа у версії Xcode 6. Зверніть увагу, що ви можете, здебільшого, вручну редагувати свою раскадровку / xib, щоб усунути проблему. Перший Чарльз А. в коментарях нижче:
Варто зазначити, що ви можете досить легко випадково ввести це попередження, а саме попередження не допоможе знайти етикетку, яка є винуватцем. Це невдало у складному раскадровці. Ви можете відкрити дошку розкадрування як вихідний файл і здійснити пошук за допомогою регулярного вираження, <label(?!.*preferredMaxLayoutWidth)
щоб знайти мітки, які опускають бажаний атрибут / значення MaxMaxLayoutWidth. Якщо в таких рядках додати перевагуMaxLayoutWidth = "0", це те саме, що позначати явне і встановлювати значення 0.
Оновлення 1:
Ця помилка тепер була виправлена в Xcode 6 GM.
Оригінальний відповідь
Це помилка в Xcode6-Beta6 та XCode6-Beta7 і її зараз можна безпечно ігнорувати.
Інженер Apple на форумах розробників Apple мав таке сказати про помилку:
Бажана максимальна ширина макета - це властивість автоматичного макета на UILabel, що дозволяє йому автоматично рости вертикально, щоб відповідати його вмісту. Версії Xcode до 6.0 встановили б бажануMaxLayoutWidth для багаторядкових міток до поточного розміру меж на час проектування. Вам потрібно буде вручну оновити бажануMaxLayoutWidth під час виконання, якщо ваш горизонтальний макет змінився.
iOS 8 додала підтримку автоматичного обчислення бажанихMaxLayoutWidth під час виконання, що робить створення багаторядкових міток ще простіше. Цей параметр не сумісний із iOS 7. Для підтримки iOS 7 та iOS 8 Xcode 6 дозволяє вибрати інспектор розміру "Автоматичний" або "Явний" для бажаноїMaxLayoutWidth. Ти повинен:
Виберіть "Автоматичний", якщо націлити на iOS 8 для найкращого досвіду. Виберіть "Явне", якщо націлено <iOS 8. Потім можна ввести значення бажаноїMaxLayoutWidth, яку ви хочете встановити. Увімкнення "Явного" за замовчуванням до поточного розміру меж у той момент, коли ви поставили прапорець.
Попередження з’явиться, якщо (1) ви використовуєте автоматичний макет, (2) "Автоматичний" встановлено для багаторядкової мітки [ви можете перевірити це в інспекторі розмірів для мітки] та (3) цілі розгортання <iOS 8.
Здається, помилка в тому, що це попередження з’являється для документів, що не мають автоматичного розміщення. Якщо ви бачите це попередження і не використовуєте автоматичний макет, ви можете проігнорувати попередження.
Ви також можете вирішити проблему, скориставшись інспектором файлів на аркуші розкадрування або на xib та змінивши "Builds for" на "Builds для iOS 8.0 та пізніших версій"