Mise à jour 3 :
Cet avertissement peut aussi être déclenché par des étiquettes qui ont numberOfLines
n'a pas la valeur 1 si votre cible de déploiement est définie sur 7.1. Ce problème est entièrement reproductible avec un nouveau projet à vue unique.
Les étapes de la reproduction :
- Créer un nouveau projet à vue unique, objectif-c
- Définir la cible de déploiement à 7.1
- Ouvrez le storyboard du projet
- Déposer une étiquette sur le contrôleur de vue fourni
- Définissez le nombre de lignes de cette étiquette à 2.
- Compiler
J'ai déposé le radar suivant :
rdar://problem/18700567
Mise à jour 2 :
Malheureusement, c'est à nouveau le cas dans la version de Xcode 6. Notez que vous pouvez, pour la plupart, modifier manuellement votre storyboard/xib pour corriger le problème. Par Charles A. dans les commentaires ci-dessous :
Il est utile de mentionner que vous pouvez assez facilement accidentellement facilement introduire cet avertissement, et l'avertissement lui-même n'aide pas à trouver l'étiquette qui est le coupable. C'est regrettable dans un storyboard. Vous pouvez ouvrir le storyboard en tant que fichier source et rechercher avec la regex *`<label(?!.preferredMaxLayoutWidth)`** pour trouver des étiquettes qui qui ne possèdent pas d'attribut ou de valeur de preferredMaxLayoutWidth. Si vous ajoutez preferredMaxLayoutWidth="0" sur de telles lignes, cela revient à marquer explicite et de définir la valeur 0.
Mise à jour 1 :
Ce bogue a maintenant été corrigé dans Xcode 6 GM.
Réponse originale
Il s'agit d'un bogue dans Xcode6-Beta6 et XCode6-Beta7 et peut être ignoré pour le moment.
Un ingénieur d'Apple, dans les forums des développeurs d'Apple, a dit ceci ce à dire sur le bug :
La largeur maximale préférée de la mise en page est une propriété de mise en page automatique sur UILabel qui qui lui permet de s'agrandir verticalement pour s'adapter à son contenu. Les versions de Xcode antérieures à 6.0 définissaient preferredMaxLayoutWidth pour les étiquettes multilignes à la taille actuelle des limites au moment de la conception. Vous auriez mettre à jour manuellement preferredMaxLayoutWidth au moment de l'exécution si votre disposition horizontale changeait.
iOS 8 a ajouté la prise en charge du calcul automatique preferredMaxLayoutWidth au moment de l'exécution, ce qui facilite encore plus la création encore plus facile. Ce paramètre n'est pas rétrocompatible avec iOS 7. Pour supporter à la fois iOS 7 et iOS 8, Xcode 6 vous permet de choisir entre "Automatic" et "Explicit" pour preferredMaxLayoutWidth dans l'inspecteur de taille. dans l'inspecteur de taille. Vous devriez :
Choisissez "Automatique" si vous visez iOS 8 pour une expérience optimale. Choisissez "Explicite" si vous ciblez < iOS 8. Vous pouvez ensuite entrer la valeur de preferredMaxLayoutWidth que vous souhaitez définir. L'activation de l'option "Explicite correspond par défaut à la taille actuelle des limites au moment où vous avez coché la case.
L'avertissement apparaîtra si (1) vous utilisez la mise en page automatique, (2) "Automatique" est défini pour une étiquette multiligne [vous pouvez le vérifier dans l'inspecteur de taille de l'étiquette]. inspecteur de taille pour l'étiquette], et (3) votre cible de déploiement < iOS 8.
Il semble que le bogue soit que cet avertissement s'affiche pour les éléments qui ne font pas partie de la mise en page automatique. non automatique. Si vous voyez cet avertissement et que vous n'utilisez pas la mise en page automatique vous pouvez ignorer cet avertissement.
Vous pouvez également contourner le problème en utilisant l'inspecteur de fichiers sur le storyboard ou le xib en question et en remplaçant "Builds for" par "Builds for iOS 8.0 and Later".