64 votes

Alignement horizontal de début ou de fin avant iOS 11

Avertissement: leading or trailing horizontal alignment before iOS 11

Je suis au-dessus des avertissements lors de la compilation sur Xcode 9.1 sur l'une des scènes d'un fichier de storyboard. Il existe d'autres scénarimages (avec la cible de déploiement iOS 10.0) et pourtant l'avertissement est affiché pour cette scène spécifique dans un fichier Storyboard spécifique.

L'avertissement est supprimé si je modifie la cible de déploiement sur iOS 11.0 sur la scène où l'avertissement est affiché, mais que je ne souhaite pas le faire.

Quelqu'un at-il rencontré ce cas?

135voto

Grzegorz Krukowski Points 3972

Pour moi le problème a été en utilisant trailing leading alignement sur UIButton lui-même.

De la zone de sécurité semble être tout à fait acceptable à utiliser, il est compatible et il se traduit par la bonne vue superbe sur les marges.

Mais cette fonctionnalité est iOS 11 seulement, de sorte que l'utilisation standard gauche / droite de l'alignement à la place si vous êtes ciblage plus faible que les versions d'iOS.

Manière la plus facile de trouver de la vue qui est à l'origine du problème est à la recherche d' contentHorizontalAlignment="leading" ou contentHorizontalAlignment="trailing" dans le code source pour .xib

enter image description here

41voto

etayluz Points 175

Étape 1:

Afficher vos délinquance storyboard sous forme de code source: enter image description here

Étape 2:

Remplacer toutes les occurrences de:

contentHorizontalAlignment="leading"

avec:

contentHorizontalAlignment="left"

Étape 3:

Remplacer toutes les occurrences de:

contentHorizontalAlignment="trailing"

avec:

contentHorizontalAlignment="right"

Étape 4:

Compiler et de regarder d'avertissement disparaît.

Je trouve cette approche plus facile quand vous avez une tonne d'éléments qui doivent être modifiées. "chef de file" et "fin" comme "contentHorizontalAlignment' types de valeur a été introduit avec iOS 11. iOS 10 ne savent pas à propos de "leader" et de "fuite", qui est la raison de l'avertissement.

2voto

David Hoy Points 11

Dans le journal de construction, juste avant le mot "warning", vous verrez un identifiant Interface Builder sous la forme "xxx-yy-zzz". Copiez-le et collez-le dans la barre de recherche Xcode pour que le contrôle "offensant" apparaisse pour vous. Cliquez sur le résultat de la recherche et cela vous mènera directement dans le storyboard avec le contrôle correspondant sélectionné. Le reste du problème peut être résolu en utilisant les autres réponses.

0voto

user462990 Points 851

J'ai eu ce problème avec tout un tas de boutons dont j'avais besoin aligné à gauche avec un petit décalage. J'ai supprimé l'alignement du storyboard et je l'ai fait comme cela dans viewDidLoad avec un tableau des boutons nécessaires.

 func indentButtons(buttons: [UIButton?]){
    for i in 0..<buttons.count{
        buttons[i]!.contentHorizontalAlignment = .left
        buttons[i]!.titleEdgeInsets = UIEdgeInsetsMake(0, 5, 0, 0)
    }
}
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X