Update 3:
Diese Warnung kann auch durch Beschriftungen ausgelöst werden, die numberOfLines
auf etwas anderes als 1 festgelegt wurden, wenn Ihr Bereitstellungsziel auf 7.1 festgelegt ist. Dies ist mit einem neuen Single-View-Projekt vollständig reproduzierbar.
Schritte zum Reproduzieren:
- Erstellen Sie ein neues Ziel-C-Projekt mit einer Ansicht
- Setzen Sie das Bereitstellungsziel auf 7.1
- Öffnen Sie das Storyboard des Projekts
- Legen Sie ein Etikett auf den bereitgestellten Ansichts-Controller
- Setzen Sie die numberOfLines für dieses Label auf 2.
- Kompilieren
Ich habe das folgende Radar abgelegt:
rdar: // problem / 18700567
Update 2:
Leider ist dies in der Release-Version von Xcode 6 wieder der Fall. Beachten Sie, dass Sie Ihr Storyboard / xib größtenteils manuell bearbeiten können, um das Problem zu beheben. Per Charles A. in den Kommentaren unten:
Es ist erwähnenswert, dass Sie diese Warnung ziemlich leicht versehentlich einführen können, und die Warnung selbst hilft nicht dabei, das Etikett zu finden, das der Schuldige ist. Dies ist in einem komplexen Storyboard unglücklich. Sie können das Storyboard als Quelldatei öffnen und mit dem regulären Ausdruck <label(?!.*preferredMaxLayoutWidth)
nach Beschriftungen suchen, bei denen ein bevorzugtes Attribut / Wert von MaxLayoutWidth weggelassen wird. Wenn Sie in solchen Zeilen PreferredMaxLayoutWidth = "0" hinzufügen, entspricht dies dem expliziten Markieren und dem Setzen des Werts 0.
Update 1:
Dieser Fehler wurde jetzt in Xcode 6 GM behoben.
Ursprüngliche Antwort
Dies ist ein Fehler in Xcode6-Beta6 und XCode6-Beta7 und kann vorerst ignoriert werden.
Ein Apple - Ingenieur in der Apple Developer Foren hatte diese über den Fehler zu sagen:
Die bevorzugte maximale Layoutbreite ist eine Eigenschaft für das automatische Layout in UILabel, mit der es automatisch vertikal vergrößert werden kann, um es an den Inhalt anzupassen. Versionen von Xcode vor 6.0 würden bevorzugtMaxLayoutWidth für mehrzeilige Beschriftungen zur Entwurfszeit auf die aktuelle Grenzgröße festlegen. Sie müssten PreferredMaxLayoutWidth zur Laufzeit manuell aktualisieren, wenn sich Ihr horizontales Layout ändert.
iOS 8 bietet Unterstützung für die automatische Berechnung von PreferredMaxLayoutWidth zur Laufzeit, wodurch das Erstellen mehrzeiliger Beschriftungen noch einfacher wird. Diese Einstellung ist nicht abwärtskompatibel mit iOS 7. Um sowohl iOS 7 als auch iOS 8 zu unterstützen, können Sie mit Xcode 6 im Größeninspektor entweder "Automatisch" oder "Explizit" für PreferredMaxLayoutWidth auswählen. Du solltest:
Wählen Sie "Automatisch", wenn Sie auf iOS 8 abzielen, um die beste Erfahrung zu erzielen. Wählen Sie "Explizit", wenn Sie auf <iOS 8 abzielen. Anschließend können Sie den Wert von PreferredMaxLayoutWidth eingeben, den Sie festlegen möchten. Wenn Sie "Explizit" aktivieren, wird standardmäßig die aktuelle Grenzgröße zum Zeitpunkt des Aktivierens des Kontrollkästchens verwendet.
Die Warnung wird angezeigt, wenn (1) Sie das automatische Layout verwenden, (2) "Automatisch" für ein mehrzeiliges Etikett festgelegt ist [Sie können dies im Größeninspektor für das Etikett überprüfen] und (3) Ihr Bereitstellungsziel <iOS 8.
Es scheint, dass der Fehler darin besteht, dass diese Warnung für nicht automatisch ausgelegte Dokumente angezeigt wird. Wenn Sie diese Warnung sehen und kein automatisches Layout verwenden, können Sie die Warnung ignorieren.
Alternativ können Sie das Problem umgehen, indem Sie den Dateiinspektor auf dem betreffenden Storyboard oder xib verwenden und "Builds für" in "Builds für iOS 8.0 und höher" ändern.